Php 有没有办法在多行上编写正则表达式模式?
我经常以超复杂和长正则表达式结束。PCRE@PHP 很长一段时间以来,我一直在寻找一种方法来做一些事情,比如:Php 有没有办法在多行上编写正则表达式模式?,php,regex,pcre,Php,Regex,Pcre,我经常以超复杂和长正则表达式结束。PCRE@PHP 很长一段时间以来,我一直在寻找一种方法来做一些事情,比如: preg_match('#blablabla... blablablablablabla... blablablablablabla... blablablablablabla... blablablablablabla... blablablablablabla... blablablablablabla... blablablablablabla... blablablab
preg_match('#blablabla...
blablablablablabla...
blablablablablabla...
blablablablablabla...
blablablablablabla...
blablablablablabla...
blablablablablabla...
blablablablablabla...
blablablablablabla...
blablablablablabla...
blablablablablabla...
blablabla#uis');
而不是:
preg_match('#blablabla...blablablablablabla...blablablablablabla...blablablablablabla...blablablablablabla...blablablablablabla...blablablablablabla...blablablablablabla...blablablablablabla...blablablablablabla...blablablablablabla...blablabla#uis');
如果我实际换行,这将成为正则表达式的一部分。也许不是实际的换行符,而是空白。除非我完全错了
是否可以在每行末尾使用一些字符来表示:“这应该是一行”您可以使用支持变量插值(或不支持变量插值)的。请参见文档中关于量词的内容:
x(PCRE_扩展)如果设置了此修饰符,则模式中的空白数据字符将被完全忽略,除非转义或在字符类内部,并且字符类外部的未转义#和下一个换行符(包括)之间的字符也将被忽略。这相当于Perl的/x修饰符,并使在复杂模式中包含注释成为可能。但是,请注意,这仅适用于数据字符。空白字符可能永远不会出现在模式中的特殊字符序列中,例如,在序列(?)中,该序列引入了条件子模式
//herdoc
$pattern_with_interpolation=就在我的头顶上,你可以把模式放在一个变量中(你可以这样写)并在将换行符输入正则表达式函数时去除换行符。使用NOWDOC/herdoc字符串文字并使用/x
修饰符。但您需要记住转义文字空白和#
。我建议将标题编辑为更便于搜索的内容,如“如何在多行上编写正则表达式模式”.我认为这是一个好问题,从长远来看,更准确的标题会让你受益匪浅。