我的php学习笔记(三十五)PHP中正则表达式学习及应用(三)


一、运算顺序
依然遵循从左到→右的运算规则
其他符号优先级如下
(1)( )  圆括号因为是内存处理所以最高
(2)* ? +  { } 重复匹配内容其次
(3)^ $ \b 边界处理第三
(4)|  条件处理第四
(5)最后按照运算顺序计算匹配

二、模式修正符
模式修正符是为正则表达式增强和补充的一个功能,使用在正则之外
格式:/正则/U--U为模式修正符

常用修正符

(1)i 正则内容在匹配时候不区分大小写(默认是区分的)
$mode = "/[a-z]/";
$str = "B";
匹配不成功
$mode = "/[a-z]/i";
$str = "B";
可以匹配成功
 
(2)m 在匹配首内容或者尾内容时候采用多行识别匹配
$mode = "/^aaa/";
$str = "000\naaa000";
匹配不成功
$mode = "/^aaa/m";
$str = "000\naaa000";
可以匹配成功

(3)S 将转义回车取消是为单行匹配如在使用. *匹配的时候,可以匹配整个段落的内容
$mode = "/444(.*)222/";
$str = "444000\n333000\n22200";
匹配不成功
$mode = "/444(.*)222/s";
$str = "444000\n333000\n22200";
匹配成功

(4)x 忽略正则中的空白
$mode = "/33 3/";
$str = "44400033300022200";
匹配不成功
$mode = "/33 3/x";
$str = "44400033300022200";
匹配成功

(5)A(大写) 强制从头开始匹配
$mode = "/^333/m";
$str = "444000\n33300022200";
匹配成功
$mode = "/^333/mA";
$str = "444000\n33300022200";
匹配不成功
(6)D 强制$匹配尾部无任何内容,连 "\n"换行都不可以
$mode = "/200$/";
$str = "444000\n33300022200\n";
匹配成功
$mode = "/200$/D";
$str = "444000\n33300022200\n";
匹配不成功

(7)U 禁止贪婪匹配 只跟踪到最近的一个匹配符并结束,常用在采集程序上的正则表达式
$mode = "/<(.*)>/U";
$str = "pppp<:b>sss</b>ppp";
匹配的内容是<:b>
$mode = "/<(.*)>/";
$str = "pppp<:b>sss</b>ppp";
匹配得到的内容是<:b>sss
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值