找回密码
 注册
【阿里云】2核2G云新老同享 99元/年,续费同价华为云精选云产品特惠做网站就用糖果主机Jtti,新加坡服务器,美国服务器,香港服务器
查看: 342|回复: 2

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

[复制链接]
发表于 2005 年 10 月 8 日 15:45:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
  Pattern Modifiers - 规则表达式的修饰符 下面是当前规则表达式里可用的修饰. 括号内的名字是那些修饰符的内部 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. 目前还没
有其他的控制特征


转自:  http://edu.chinaz.com
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
发表于 2005 年 10 月 8 日 20:27:31 | 显示全部楼层
【腾讯云】2核2G云服务器新老同享 99元/年,续费同价
谢 朋友
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

 楼主| 发表于 2005 年 10 月 8 日 15:45:39 | 显示全部楼层

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

  Pattern Modifiers - 规则表达式的修饰符 下面是当前规则表达式里可用的修饰. 括号内的名字是那些修饰符的内部 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. 目前还没
有其他的控制特征


转自:  http://edu.chinaz.com
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|金光论坛

GMT+8, 2024 年 11 月 20 日 08:31 , Processed in 0.019858 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表