百科狗-知识改变命运!
--

内部选项设置 - php 表达式

百变鹏仔12个月前 (11-21)阅读数 21#技术干货
文章标签选项

内部选项设置

PCRE_CASELESS, PCRE_MULTILINE, PCRE_DOTALL, PCRE_UNGREEDY, PCRE_EXTRA, PCRE_EXTENDED and PCRE_DUPNAMES 等模式修饰符设置可以在模式内部通过一个 perl 选项字符序列来设置, 语法为:(?修饰符),可用的修饰符有:

Internal option letters
ifor PCRE_CASELESS
mfor PCRE_MULTILINE
sfor PCRE_DOTALL
xfor PCRE_EXTENDED
Ufor PCRE_UNGREEDY
Xfor PCRE_EXTRA
Jfor PCRE_INFO_JCHANGED

内部选项设置 - php 表达式

比如,(?im) 设置表明多行大小写不敏感匹配。同样可以用它来取消这些设置, 比如 (?im-sx) 设置了 PCRE_CASELESS,PCRE_MULTILINE, 但是同时取消了 PCRE_DOTALL 和 PCRE_EXTENDED。 如果一个字母即出现在 - 之前, 也出现在 - 之后,这个选项被取消设置。

当一个选项在模式的最上级(也就是说不在子组中)时, 这个改变会影响模式中剩余部分。比如/ab(?i)c/仅仅匹配 ”abc” 和 ”abC”。 这个形式在 PCRE 4.0(PHP 4.3.3) 中被改变。在此之前的版本中, /ab(?i)c/ 行为和 /abc/i 完全一致。

如果一个选项在子组中设置,产生的影响是不同的。这是 perl 5.005 中行为的一个变种。 一个选项在子组内部设置,仅仅改变子组中剩余的部分, 因此(a(?i)b)c仅仅匹配 ”abc” 和 ”aBc” (假设没有使用 PCRE_CASELESS 选项)。 这就意味着选项在模式的不同位置可以造成不同的影响。 在同一个子模式中, 一个分支的选项设置回穿透到后面剩余的其他分支中去。 比如(a(?i)b|c)匹配”ab”, “aB”, “c” 和 ”C”。 尽管在匹配 ”C” 时第一个分支会在选项被设定前就被丢弃。 这是因为选项的设定是在编译期确定的,否则可能会带来非常怪异的行为。

PCRE 专用选项 PCRE_UNGREEDY 和 PCRE_EXTRA 可以和 perl 兼容选项以同样的方式来改变, 分别使用字母 U 和 X. (?X) 标记设定有些特殊,它必须出现在任何其他特性之前, 最好放在最开头的位置。

There is also the possibility to enable Modifier only on a specific group, so that the Modifier doesn't stay valid until end or deactivation with "(?-)".
The Syntax for that is "?:" on the beginning of the group, i.e. (?i:foo) matches on FoO.
When using the (?i:foo) syntax, it appears that the group is not included in the 'matches' argument unless it is nested in an additional set of parenthesis, for example: ((?i:foo))

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)