【发布时间】:2012-08-27 09:05:50
【问题描述】:
我正在使用 preg_replace 替换文本中可能包含一些 url 的单词列表。 问题是如果这些词是 url 的一部分,我不想替换它们。
这些例子应该被忽略:
foo.com
foo.com/foo
foo.com/foo/foo
对于一个基本示例(用 php 编写),我尝试使用否定前瞻断言忽略包含 .com 和可选斜杠和字符的字符串,但没有成功:
preg_replace("/(\b)foo(\b)/", "$1bar$2(?!(\w+\.\w+)*(\.com)([\.\/]\w+)*)", $text);
这个调用只是忽略了 .com 之前的单词。 任何帮助将不胜感激。
【问题讨论】:
标签: regex url preg-replace assertion