【问题标题】:How Do You Comment Out the */ Part of a Regular Expression in PHP如何在 PHP 中注释掉正则表达式的 */ 部分
【发布时间】:2012-09-11 23:20:56
【问题描述】:

我有 preg_replace 函数,我正在调用该函数并将其放在多行以提高可读性,但正则表达式中的 */ 字符会弄乱 cmets。如何注释掉所有这些行而不将它们全部移到一行?

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

【问题讨论】:

    标签: php regex comments


    【解决方案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自动检测不同的分隔符?还是我必须在某个地方设置它?
    • 我刚刚更新了答案,提供了更多信息来回答您关于分隔符的问题。
    猜你喜欢
    • 2018-08-24
    • 2020-02-02
    • 2014-01-29
    • 1970-01-01
    • 2011-08-19
    • 2010-11-14
    • 2014-07-26
    • 2014-12-17
    • 1970-01-01
    相关资源
    最近更新 更多