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

BFT*_*ick 5 php regex comments

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

return preg_replace('/.*/',
    'Lorem Ipsum' .
    'More Lorem Ipsum'
    ,
    $foo);
Run Code Online (Sandbox Code Playgroud)

jim*_*imp 9

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

return preg_replace('#.*#',
    'Lorem Ipsum' .
    'More Lorem Ipsum'
    ,
    $foo);
Run Code Online (Sandbox Code Playgroud)

编辑: 分隔符是PCRE(Perl Compatible Regular Expresssion)的一个特性.使用不同的分隔符不需要PHP配置.

Regexp报价操作员

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

引用和引用类似的运算符

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

这些都是有效的:

'/.*/'
'#.*#'
'{.*}' /* Note that '{.*{' would be incorrect. */
Run Code Online (Sandbox Code Playgroud)

看一下关于PCRE模式的PHP文档,看看非常好的概述.