i(PCRE_CASELESS) 函数
若是设置了这个修饰符,则表达式不区分大小写. spa
m(PCRE_MULTILINE) 字符串
默认的,PCRE认为目标字符串值是单行字符串(即便他确实包含多行).行开始标记(^)只匹配字符串的开始部分,而行结束标记($)只匹配字符串的尾部,或者一个结束行(除非指定E修饰符).这个和Perl里面同样. 若是设定了这个修饰符,行开始和行结束结构分别匹配在目标字符串任何新行的当前位置后面的或者之前的,和每个开始和结束同样.这个等于Perl里面的/m修饰符.若是目标字符串没有"n"字符,或者模式里没有^或$,这个修饰符不起做用. it
s(PCRE_DOTALL) class
若是设置这个修饰符,模式里的一个"点"将匹配全部字符,包括换行.没有他,换行将被排除在外.这个修饰符等同于Perl里面的/s修饰符.一个相反的类型,例如[^a>将老是匹配换行字符,而无论这个修饰符的限制. 搜索
x(PCRE_EXTENDED) im
若是设置这个修饰符,模式里面的空格数句将会被所有忽略,除非用转义符或者一个字符的内部类型,还有全部字符类型外的未转义的#号之间的也被忽略.这个等同于Perl里面的/x 修饰符,这样能够复杂的模式里面加入注释.注意,只适用于数据字符.空格字符将不会在指定的模式字符指定顺序中出现。 数据
e margin
若是设置这个修饰符,preg_replace()将在替换值里进行正常的涉及到的替换,等同于在PHP代码里面同样,而后用于替换搜索到的字符串. 只在preg_replace()里使用这个修饰符;其它PCRE函数忽略他. top
A(PCRE_ANCHORED)
若是设置这个修饰符,模式被强制为锚(anchored),也就是说,他将值匹配搜索字符串的开始.这个效果能够经过恰当的模式结构自身来实现,那是在Perl里面的惟一途径.
D(PCRE_DOLLAR_ENDONLY)
若是设置这个修饰符,则模式里的$修饰符将仅匹配目标字符串里的尾部.没有这个修饰符,$字符也匹配新行的尾部(可是再也不新行的前面).若是设置了m修饰符则忽略这个修饰符.在Perl里面没有相似的.
S
若是一个模式将被使用屡次,使用长些时间分析他来来提升匹配的速度.若是使用这个修饰符,则进行额外的分析.目前,研究模式仅用于非锚模式,没有一个固定的开始字符.
U(PCRE_UNGREEDY)
这个修饰符翻转数量的"greediness",使得默认不被greedy,可是若是你紧跟问号(?),则能够greedy.这个和Perl不兼容.这个也能够经过在模式里面的(?U)修饰符获得.
X(PCRE_EXTRA)
这个修饰符打开额外的功能,这些和Perl不兼容.任何模式里面的后面带字符但没有特殊意义的反斜杠将引发错误,从而储备这些联合用于未来的扩充.默认的,在Perl里面, 反斜杠后面有无心义的字符被当成正常的literal.目前尚未其余的控制特征