一、运算顺序
依然遵循从左到→右的运算规则
其他符号优先级如下
(1)( ) 圆括号因为是内存处理所以最高
(2)* ? + { } 重复匹配内容其次
(3)^ $ \b 边界处理第三
(4)| 条件处理第四
(5)最后按照运算顺序计算匹配
(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";
可以匹配成功
如
$mode = "/444(.*)222/";
$str = "444000\n333000\n22200";
匹配不成功
$mode = "/444(.*)222/s";
$str = "444000\n333000\n22200";
匹配成功
如
$mode = "/33 3/";
$str = "44400033300022200";
匹配不成功
$mode = "/33 3/x";
$str = "44400033300022200";
匹配成功
如
$mode = "/^333/m";
$str = "444000\n33300022200";
匹配成功
$mode = "/^333/mA";
$str = "444000\n33300022200";
匹配不成功
如
$mode = "/200$/";
$str = "444000\n33300022200\n";
匹配成功
$mode = "/200$/D";
$str = "444000\n33300022200\n";
匹配不成功
如
$mode = "/<(.*)>/U";
$str = "pppp<:b>sss</b>ppp";
匹配的内容是<:b>
$mode = "/<(.*)>/";
$str = "pppp<:b>sss</b>ppp";
匹配得到的内容是<:b>sss