1、()括号中的内容将会复制到\\num中,num所代表的就是()中的内容,具体示例如下图所示
<?php $pattern='/t(e)st\\1/'; $str=' teste '; var_dump(preg_match_all($pattern,$str,$arr)); var_dump($str);
输出结果为
2、模式修正符是在正则表达式的定界符之后使用的,可以调整正则表达式的解释,扩展正则表达式在匹配、替换等操作时的某些功能,增强正则表达式的处理能力。
3、(1)i(在和模式匹配时不区分大小写)
<?php $pattern='/test/i'; $str=' TEST,test,Test,teSt'; var_dump(preg_match_all($pattern,$str,$arr)); var_dump($arr);
输出结果
(2)m(进行多行匹配)
使用条件:
<1>目标字符串中必须包括"\n";(在字符串中出现\n表示新的一行开始);
<2>正则表达式中必须要出现^或者$;
具体示例如下
<?php $pattern='/^test/m'; $str="test\ntest\ntest\ntest"; var_dump(preg_match_all($pattern,$str,$arr)); var_dump($arr);
输出结果为
注:在windows操作系统中的换行是由两个字符完成的(\r\n)
在linux操作系统中的换行是由\n完成的
所以手动敲出的换行是无法被识别的
(3)s(匹配所有的字母包括换行符)
示例如下
<?php $pattern='/t.st/s'; $str="t st";//若进行换行则无法匹配,因为换行有两个字符\r\n var_dump(preg_match_all($pattern,$str,$arr)); var_dump($arr);
输出结果为
(4)U(禁止贪婪匹配)
<?php $pattern='/a.*f/U'; $str="adwdawsegreggtthf aveawhkeawsckf"; var_dump(preg_match_all($pattern,$str,$arr)); var_dump($arr);
输出结果为