【发布时间】:2012-01-19 18:45:36
【问题描述】:
我有一些 HTML 内容:
<p>
Nunc nulla tincidunt metus sed eros auctor sagittis. Sed malesuada, mi et ornare
molestie, urna dui
<a href="http://google.com/" title="condimentum nulla">condimentum nulla, ut luctus</a> nisl ipsum ut dui.
Praesent aliquam velit quis neque congue consectetur <b>nulla</b>.
Curabitur turpis risus, malesuada nec volutpat sit amet, auctor porta velit.
</p>
我想将所有“nulla”字词替换为链接,但前提是“nulla”不是另一个链接 url 或其他 HTML 参数(标题、alt)的一部分。在上面的示例脚本中,应该只替换第一个和最后一个“nulla”单词,其他的保持原样。我被这个正则表达式卡住了,但它不能按我想要的方式工作:
/[^<a]+[^>]*nulla[^<\/a>]/
【问题讨论】:
-
[^<...]在正确的轨道上,但语法错误。 -
谢谢,这个解决方案对我有用: $str = preg_replace('~nulla(?!(?>[^)~i', '$0', $str);
标签: php preg-replace preg-replace-callback