我有preg_replace函数,我正在调用并放在多行上以便于阅读,但正则表达式中的*/
字符搞乱了注释。如何在不将它们全部移到一行的情况下注释掉所有这些线?
return preg_replace('/.*/',
'Lorem Ipsum' .
'More Lorem Ipsum'
,
$foo);
答案 0 :(得分:9)
您可以使用不同的正则表达式模式分隔符:
return preg_replace('#.*#',
'Lorem Ipsum' .
'More Lorem Ipsum'
,
$foo);
修改强> 分隔符是PCRE(Perl Compatible Regular Expresssion)的一个特性。使用不同的分隔符不需要PHP配置。
...您可以使用任何一对非字母数字,非空白字符 作为分隔符。这对于匹配路径名特别有用 包含“/”,以避免LTS(倾斜牙签综合征)。
Quote and Quote-like Operators
非包围分隔符使用相同的字符前后,但是 所有嵌套的四种ASCII括号(圆形,角形,方形,卷曲)
这些都是有效的:
'/.*/'
'#.*#'
'{.*}' /* Note that '{.*{' would be incorrect. */
查看PHP's documentation on PCRE Patterns以查看非常好的概述。