PHP程序员站--PHP编程开发平台
 当前位置:主页 >> PHP高级编程 >> 高级应用 >> 

PHP正则表达式的修饰符详细解释

PHP正则表达式的修饰符详细解释

来源:互联网  作者:  发布时间:2010-12-31
PatternModifiers- 规则表达式的修饰符 下面是当前规则表达式里

PatternModifiers- 规则表达式的修饰符  

下面是当前规则表达式里可用的修饰.括号内的名字是那些修饰符的内部PCRE名字.  


i(PCRE_CASELESS)  

如果设置了这个修饰符,则表达式不区分大小写.  


m(PCRE_MULTILINE)  

默认的,PCRE认为目标字符串值是单行字符串(即使他确实包含多行).行开始标记(^)只匹配字符串的开始部分,而行结束标记($)只匹配字符串的尾部,或者一个结束行(除非指定E修饰符).这个和Perl里面一样.   如果设定了这个修饰符,行开始和行结束结构分别匹配在目标字符串任何新行的当前位置后面的或者以前的,和每一个开始和结束一样.这个等于Perl里面的/m修饰符.如果目标字符串没有"n"字符,或者模式里没有^或$,这个修饰符不起作用.  


s(PCRE_DOTALL)  

如果设置这个修饰符,模式里的一个"点"将匹配所有字符,包括换行.没有他,换行将被排除在外.这个修饰符等同于Perl里面的/s修饰符.一个相反的类型,例如[^a>将总是匹配换行字符,而不管这个修饰符的限制.  


x(PCRE_EXTENDED)  

如果设置这个修饰符,模式里面的空格数句将会被全部忽略,除非用转义符或者一个字符的内部类型,还有所有字符类型外的未转义的#号之间的也被忽略.这个等同于Perl里面的/x   修饰符,这样可以复杂的模式里面加入注释.注意,只适用于数据字符.空格字符将不会在指定的模式字符指定顺序中出现。  


e  

如果设置这个修饰符,preg_replace()将在替换值里进行正常的涉及到的替换,等同于在PHP代码里面一样,然后用于替换搜索到的字符串.   只在preg_replace()里使用这个修饰符;其它PCRE函数忽略他.  


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.目前还没有其他的控制特征

 


延伸阅读:
PHP正则表达式
正则表达式简单程教
PHP一些常用的正则表达式代码
Pattern Modifiers - 规则表达式的修饰符
正则表达式中的特殊字符一览
正则获得某个网页上的所有超裢接
如何用正则表达式来表示中文
在PHP中使用与Perl兼容的正则表达式
正则表达式学习笔记
正则,将MM/DD/YYYY格式的日期转换为YYYY-MM-DD格式
php的正则表达式专题
JavaScript中正则表达式详解
javascript常用正则表达式及详解
掌握PHP 中的正则表达式,第 1 部分
掌握 PHP 中的正则表达式,第 2 部分
PHP正则校验email语句详解
ajax入门简明教程---正则表达式验证
PHP的正则处理函数总结分析
PHP正则表达式的几则使用技巧
PHP 正则表达式验证IPV6


Tags: php   正则表达式   修饰符   正则  
最新文章
推荐阅读
月点击排行榜
PHP程序员站 Copyright © 2007-2010,PHPERZ.COM All Rights Reserved 粤ICP备07503606号