当前位置: 首页 > 图文教程 > 网络编程 > PHP > Pattern Modifiers - 规则表达式的修饰符

PHP
php 多线程上下文中安全写文件实现代码
PHP类的使用 实例代码讲解
用php实现让页面只能被百度gogole蜘蛛访问的方法
php 学习笔记
PHP编程过程中需要了解的this,self,parent的区别
php 操作excel文件的方法小结
使用PHP获取网络文件的实现代码
PHP 巧用数组降低程序的时间复杂度
php下将XML转换为数组
php 文件上传代码(限制jpg文件)
php 无极分类(递归)实现代码
PHP 采集获取指定网址的内容
PHP 将图片按创建时间进行分类存储的实现代码
PHP 存储文本换行实现方法
PHP 批量更新网页内容实现代码
用PHP查询搜索引擎排名位置的代码
用php实现的获取网页中的图片并保存到本地的代码
php实现首页链接查询 友情链接检查的代码
处理php自动反斜杠的函数代码
php实现的遍历文件夹下所有文件,编辑删除

PHP 中的 Pattern Modifiers - 规则表达式的修饰符


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 82 ::
收藏到网摘: n/a

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