php 正则表达式

正则表达式的作用:分割,查找,匹配,替换

 

组成部分:

  (1)分割符: 正斜线(/),hash符号(#),取反符号(~)

  (2)通用原子: \d(十进制0-9),\D(除了0-9),\w(数字字母下划线),\W(除了数字字母下划线),\s(空白符),\S(除了空白符)

  (3)元字符: . (除了换行符的任意字符),*(匹配前面的字符0次,1次或多次),?(0次或1次),^ (必须以它开头),$(必须以它结尾),+ (出现一次或多次),[] (数组中某一个), {n} 出现n次 ,(n)匹配n

   (4) 模式修正符: i(不区分大小写) U(去除贪婪模式)s(可以匹配换行符) x(空白忽略不计)

贪婪模式:尽可能匹配多的字符串

懒惰模式:尽可能匹配少的字符串

举例:a.*b     匹配  aabaab       贪婪模式:   结果为 aabaab        懒惰模式  : 结果为  aab

 

正则表达式函数:

$parttern : 替换形式

$subject : 目标字符串

(1) preg_match( $parttern ,$subject,[array  $matches])     :匹配一次        返回0或1

(2)preg_match_all( $parttern ,$subject,[array  $matches]):匹配多次       返回0或1

(3)preg_split( $parttern ,$subject,[int $limit]):以$parttern的形式 截取字符串  返回替换后的子字符串

(4)preg_replace($parttern,$replacement,$subject) :  搜索$parttern,用$replacement将其替换

实例:

①邮箱:

分析:1256@qq.com     分为五部分:

(1)最少三位,数字字母或下划线             (2)  @     (3)数字字母下划线     (4).    (5)com或者cn

<?php
	$pattern = '/^\w{3,}@([a-z]{2,7}|[0-9]{3})\.(com|cn)$/';
	$subject = '1235@163.com';
	preg_match_all($pattern, $subject, $matches);
	var_dump($matches);

②电话号码:

分析: 168888999999      固定长度11位,首位为1,其余十位全为数字

<?php
	$pattern = '/^(1)\d{10}/';
	$subject = '12357846912';
	preg_match_all($pattern, $subject, $matches);
	var_dump($matches);

③IP地址

<?php
	$pattern = '/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/';
	$subject = '12.35.784.692';
	echo preg_match_all($pattern, $subject, $matches)."\n";
	var_dump($matches);

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值