我试图在 preg_replace 替换中没有空格的 $1 之后添加“00”。
我的代码:
$count = null;
$returnValue = preg_replace('/de(.*)y/i', '$1 00', 'delipsumy', -1, $count);
我想要像 '$1'.'00' 之类的东西来替换输出应该是:
Lipsum00(没有任何空格)
我已经尝试过类似 '$1'.'00' 和 '$100' 但不起作用
有什么建议吗?
我试图在 preg_replace 替换中没有空格的 $1 之后添加“00”。
我的代码:
$count = null;
$returnValue = preg_replace('/de(.*)y/i', '$1 00', 'delipsumy', -1, $count);
我想要像 '$1'.'00' 之类的东西来替换输出应该是:
Lipsum00(没有任何空格)
我已经尝试过类似 '$1'.'00' 和 '$100' 但不起作用
有什么建议吗?
尝试:
$returnValue = preg_replace('/de(.*)y/i', '\${1}00', 'delipsumy', -1, $count);
这在方法的文档中得到解决 (强调添加):
当使用一个反向引用后跟另一个数字的替换模式时(即:在匹配的模式之后立即放置一个文字数字),您不能使用熟悉的 \1 符号作为反向引用。例如,\11 会混淆 preg_replace(),因为它不知道您是想要 \1 反向引用后跟文字 1,还是要 \11 反向引用后跟什么都没有。在这种情况下,解决方案是使用 \${1}1。这将创建一个孤立的 $1 反向引用,将 1 保留为文字。
所以你的替换模式将是'\${1}00'
. 举个例子:
// Output: H__e__ll__o__ W__o__rld
echo preg_replace("/([aeiou])/", "__\${1}__", "Hello World");
在行动中看到它:http: //codepad.org/orbK5jdw