php 正则表达式后缀

 Perl风格的正则表达式允许把单个字符选项(标志)放在正则表达式模式后面来修改匹配的解释或行为。例如,要进行不区分大小写的匹配,可以简单地使用i标志:

preg_match('/cat/i', 'Stop, Catherine!');        // returns true返回true

表4-12显示了在Perl兼容正则表达式中支持的来自Perl的修饰符:

表4-12:Perl标志

修饰符

意 义

/regexp/i

不区分大小写的匹配

/regexp/s

使句点(.)匹配任何字符,包括换行符(\n)

/regexp/x

从模式中删除空白符和注释

/regexp/m

使^匹配换行符 (\n)之后的内容,美元符号($)匹配换行符 (\n)之前的内容

/regexp/e

如果替换字符串是PHP代码,使用eval()执行该代码来得到实际的替换字符串。

PHP的Perl兼容正则表达式函数也支持在Perl中不支持的其他修饰符,如表4-13所示:

表4-13:其他的PHP标志

修饰符

意 义

/regexp/U

颠倒子模式的贪婪性;*和+尽可能少地匹配而不是尽可能多。

/regexp/u

把模式字符串当作UTF-8编码对待

/regexp/X

如果一个反斜杠之后跟着没有特殊意义的字符,将产生一个错误

/regexp/A

把锚定位在字符串的开头就像模式中有^一样

/regexp/D

使$字符仅匹配一行的末尾

/regexp/S

使表达式解析器更加小心地检查模式的结构,使得第二次运行时(如在一个循环中)加快速度



文章来自: 本站原创
Tags:
评论: 0 | 查看次数: 5778