如果在标签内,则不匹配

时间:2011-09-28 17:35:43

标签: php html regex

我有这个正则表达式,可以检测网址格式的文本:

/(http|ftp)+(s)?:(\/\/)((\w|\.)+)(\/)?(\S+)?/

因此会检测到类似http://google.com

的内容

我的问题是,当链接位于<a href="http://google.com">http://www.google.com</a>等标记内时,我不希望它检测链接 - 所以在那里它应该检测到任何内容。帮助

编辑 - 我不想匹配锚标记。上面的正则表达式匹配锚标签内的链接,这是我做想要的。我需要它来匹配标签之外的链接。

2 个答案:

答案 0 :(得分:0)

这个应该有效

/(?!href.*?=.*?['"]+)(http|ftp)+(s)?:(\/\/)((\w|\.)+)(\/)?(\S+)?/

答案 1 :(得分:0)

/(?<!href=['"])(http|ftp)+(s)?:(\/\/)((\w|\.)+)(\/)?(\S+)?/