想要通过正则表达式实现文章关键词替换成链接的功能
我之前的写发是:
preg_replace("/(?<!['\"])".$keyword."(?!<\/a>)/",$replacement, $subject);
这样的方式可以实现关键词替换。
但是遇到了一个问题。
当$subject 被a标记包含 同时有其他词存在就会有冲突 例如:
$keyword = "关键词";
$subject = "<a href="www.example.com">这里是关键词的内容</a>"
$replacement = "<a href="target.com">管仅此</a>";
$result = preg_replace("/(?<!['\"])".$keyword."(?!<\/a>)/",$replacement, $subject);
这样的result结果就是有问题的 会在a标签内嵌套a标签。
想要的功能就是避免在a标签内嵌套。
请问如何写正确的正则表达式
关键在于,先使 a标签 内容中的关键词消失,待处理完,再恢复。
输出如下: