如何在PHP中使用PCRE的反向引用?

3

我阅读了这个PHP正则表达式页面,但是我可能漏掉了一些东西,误读了一些东西,或者它的工作方式与他们说的不同。我猜测是前两种情况之一。

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

4

您的正则表达式应该遵循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 - Geert

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接