php preg_replace 需要帮助
我创建了一个函数来搜索字符串并用链接替换这些字符串中的关键字。我正在使用
preg_replace('/\b(?<!=")(?<!=\')(?<!=)(?<!=")(?<!>)(?<!>)' . $keyword . '(?!</a)(?!</a)\b', $newString, $row);
它,它按预期工作。唯一的问题是,如果有人有一个像 Automobile
这样的链接
<a href="www.domain.tdl/keyword.html">Luxury Automobile sales</a>
,就是本例中的 $keyword
。
最终看起来
<a href="www.domain.tdl/keyword.html">Luxury <a href="www.domain.tdl/keywords.html">Automobile</a> Sales</a>
你可以理解我的沮丧。 由于对正则表达式没有信心,我想我会问这里是否有人知道解决方案。
谢谢!
I have created a function to search through strings and replace keywords in those strings with links. I am using
preg_replace('/\b(?<!=")(?<!=\')(?<!=)(?<!=")(?<!>)(?<!>)' . $keyword . '(?!</a)(?!</a)\b', $newString, $row);
which is working as expected. The only issue is that if someone had a link like this
<a href="www.domain.tdl/keyword.html">Luxury Automobile sales</a>
Automobile
being our $keyword
in this example.
It would end up looking like
<a href="www.domain.tdl/keyword.html">Luxury <a href="www.domain.tdl/keywords.html">Automobile</a> Sales</a>
You can understand my frustration.
Not being confident in regex I thought I would ask if anyone here would know a solution.
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
像 DOMDocument 这样的合适的 HTML 解析器怎么样?
获取元素属性不是问题也
How about a proper HTML parser like DOMDocument?
Is not a problem to get element attribute too