Php正则表达式重复替换字符串的结尾($)

时间:2014-11-20 20:17:50

标签: php regex

我有以下代码在源字符串的末尾添加字符串" 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

可能有问题?

更新

感谢大家的建议。

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

但我无法理解为什么双引号字符串表现得如此奇怪。

1 个答案:

答案 0 :(得分:3)

而不是$使用\z来表示多行输入数据中的输入结束:

echo preg_replace('/\z/','QWE','<p>123</p>

<p>456</p>'."\r\n"
);

输出:

<p>123</p>

<p>456</p>
QWE