你如何在PHP中注释掉正则表达式的* /部分

时间:2012-09-19 15:48:48

标签: php regex comments

我有preg_replace函数,我正在调用并放在多行上以便于阅读,但正则表达式中的*/字符搞乱了注释。如何在不将它们全部移到一行的情况下注释掉所有这些线?

return preg_replace('/.*/',
    'Lorem Ipsum' .
    'More Lorem Ipsum'
    ,
    $foo);

1 个答案:

答案 0 :(得分:9)

您可以使用不同的正则表达式模式分隔符:

return preg_replace('#.*#',
    'Lorem Ipsum' .
    'More Lorem Ipsum'
    ,
    $foo);

修改 分隔符是PCRE(Perl Compatible Regular Expresssion)的一个特性。使用不同的分隔符不需要PHP配置。

Regexp Quote-Like Operators

  

...您可以使用任何一对非字母数字,非空白字符   作为分隔符。这对于匹配路径名特别有用   包含“/”,以避免LTS(倾斜牙签综合征)。

Quote and Quote-like Operators

  

非包围分隔符使用相同的字符前后,但是   所有嵌套的四种ASCII括号(圆形,角形,方形,卷曲)

这些都是有效的:

'/.*/'
'#.*#'
'{.*}' /* Note that '{.*{' would be incorrect. */

查看PHP's documentation on PCRE Patterns以查看非常好的概述。