【发布时间】:2016-03-23 23:36:48
【问题描述】:
我的 xml 中多次出现以下文本:
版权所有 © 2015。
我正在尝试使用正则表达式动态更改上述文本,以便始终在最终输出中反映当前年份。这是我的尝试,它似乎不起作用:
$finaloutput = preg_replace("/Copyright © [0-9]+/", "test", $finaloutput);
当然,我使用硬编码字符串(“test”)只是出于测试目的,因为当前文本中已经包含 2015。所以,我的目标是改变这一点:
版权所有 © 2015。保留所有权利....
进入这个:
版权 © 测试。保留所有权利....
我的正则表达式错了吗?
P.S.:只是为了让大家更好地了解上下文,这里(部分)XML sn-p $finaloutput 分配给:
<div class="dict_source"><strong>Powered by</strong> <a target="_blank" rel="nofollow" href="http://www.collinsdictionary.com/dictionary/english-spanish">Collins Complete Spanish Electronic Dictionary</a><br>Copyright © 2015 HarperCollins Publishers Limited.</div>
更新:我尝试了@Avinash 提供的答案,但仍然未能成功。为了更好地说明这个问题,我挖出了一个在线的preg_replace()测试器。结束于https://www.functions-online.com/preg_replace.html。以下是我在各个输入字段中输入的信息以供测试:
$pattern:'/(Copyright\s+©\s+)[0-9]+/u'
$replacement:'\1test'
$subject:<div class="dict_source"><strong>Powered by</strong> <a target="_blank" rel="nofollow" href="http://www.collinsdictionary.com/dictionary/english-spanish">Collins Complete Spanish Electronic Dictionary</a><br>Copyright © 2015 HarperCollins Publishers Limited.</div>
【问题讨论】:
-
是
©还是实体?空格也正确吗?试试var_dump($finaloutput);。
标签: php regex preg-replace