【问题标题】:How do you use back-references to PCREs in PHP?你如何在 PHP 中使用对 PCRE 的反向引用?
【发布时间】:2010-09-06 05:11:19
【问题描述】:

我读过这个PHP RegEx page,但要么我遗漏了一些东西,要么误读了一些东西,要么它不像他们所说的那样工作。我猜它是前两个之一。

$str = preg_replace("([|]\d*)", "\1;", $str);

【问题讨论】:

    标签: php regex


    【解决方案1】:

    您的正则表达式应该遵循 Perl 语法,这意味着它必须以相同的字符开头和结尾(有一些例外)。此外,后向引用应该以双斜杠开头,以避免 PHP 的双重转义。这应该可以工作(通过快速测试):

    $str = "asdfasdf |123123 asdf iakds |302 asdf |11";
    $str = preg_replace("/([|]\d*)/", "\\1;", $str);
    echo $str; // prints "asdfasdf |123123; asdf iakds |302; asdf |11;"
    

    【讨论】:

    • 请注意,$n 反向引用语法优于 \\n。手册是这样说的。
    猜你喜欢
    • 1970-01-01
    • 2011-08-12
    • 2014-04-04
    • 2015-08-21
    • 1970-01-01
    • 2012-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多