【发布时间】:2012-09-11 23:20:56
【问题描述】:
我有 preg_replace 函数,我正在调用该函数并将其放在多行以提高可读性,但正则表达式中的 */ 字符会弄乱 cmets。如何注释掉所有这些行而不将它们全部移到一行?
return preg_replace('/.*/',
'Lorem Ipsum' .
'More Lorem Ipsum'
,
$foo);
【问题讨论】:
我有 preg_replace 函数,我正在调用该函数并将其放在多行以提高可读性,但正则表达式中的 */ 字符会弄乱 cmets。如何注释掉所有这些行而不将它们全部移到一行?
return preg_replace('/.*/',
'Lorem Ipsum' .
'More Lorem Ipsum'
,
$foo);
【问题讨论】:
您可以使用不同的正则表达式模式分隔符:
return preg_replace('#.*#',
'Lorem Ipsum' .
'More Lorem Ipsum'
,
$foo);
编辑: 分隔符是 PCRE(Perl 兼容正则表达式)的一个特性。使用不同的分隔符无需 PHP 配置。
...您可以使用任何一对非字母数字、非空白字符 作为分隔符。这对于匹配路径名特别有用 包含“/”,以避免 LTS(倾斜牙签综合症)。
Quote and Quote-like Operators
非括号分隔符前后使用相同的字符,但 四种ASCII括号(圆、角、方、花)全部嵌套
这些都是有效的:
'/.*/'
'#.*#'
'{.*}' /* Note that '{.*{' would be incorrect. */
查看PHP's documentation on PCRE Patterns 了解一个非常好的概览。
【讨论】: