如何在 PHP 中注释掉正则表达式的 */ 部分
Posted
技术标签:
【中文标题】如何在 PHP 中注释掉正则表达式的 */ 部分【英文标题】:How Do You Comment Out the */ Part of a Regular Expression in PHP 【发布时间】:2012-09-11 23:20:56 【问题描述】:我有 preg_replace 函数,我正在调用该函数并将其放在多行以提高可读性,但正则表达式中的 */
字符会弄乱 cmets。如何注释掉所有这些行而不将它们全部移到一行?
return preg_replace('/.*/',
'Lorem Ipsum' .
'More Lorem Ipsum'
,
$foo);
【问题讨论】:
【参考方案1】:您可以使用不同的正则表达式模式分隔符:
return preg_replace('#.*#',
'Lorem Ipsum' .
'More Lorem Ipsum'
,
$foo);
编辑: 分隔符是 PCRE(Perl 兼容正则表达式)的一个特性。使用不同的分隔符无需 php 配置。
Regexp Quote-Like Operators
...您可以使用任何一对非字母数字、非空白字符 作为分隔符。这对于匹配路径名特别有用 包含“/”,以避免 LTS(倾斜牙签综合症)。
Quote and Quote-like Operators
非括号分隔符前后使用相同的字符,但 四种ASCII括号(圆、角、方、花)全部嵌套
这些都是有效的:
'/.*/'
'#.*#'
'.*' /* Note that '.*' would be incorrect. */
查看PHP's documentation on PCRE Patterns 了解一个非常好的概览。
【讨论】:
和php自动检测不同的分隔符?还是我必须在某个地方设置它? 我刚刚更新了答案,提供了更多信息来回答您关于分隔符的问题。以上是关于如何在 PHP 中注释掉正则表达式的 */ 部分的主要内容,如果未能解决你的问题,请参考以下文章