PHP 正则表达式副本替换字符串 ($) 的结尾


Php regex duplicate replace the end of string ($)

我有下面的代码在源字符串的末尾添加字符串"QWE":

<?php
echo preg_replace('/$/','QWE',"<p>123</p>    
<p>456</p>'r'n"
)
?>

结果是:

# php p.php
<p>123</p>    
QWE456</p>
QWE

结果必须如下所示:

# php p.php
<p>123</p>    
456</p>
QWE

可能是出了什么问题?

更新

谢谢大家的建议。

经过一些测试,我找到了临时解决方案。如果我将双引号替换为单引号,结果还可以。

但我不明白为什么双引号字符串表现得如此奇怪。

而不是

$在多行输入数据中使用'z作为输入结束:

echo preg_replace('/'z/','QWE','<p>123</p>
<p>456</p>'."'r'n"
);

输出:

<p>123</p>
<p>456</p>
QWE