我试图修改URL匹配的正则表达式在http://daringfireball.net/2010/07/improved_regex_for_matching_urls不匹配任何已经是一个有效的URL标记的一部分或用作链接文本的URL。正则表达式匹配后面没有“或<
对于例如,在下面的字符串,我想匹配http://www.foo.com,但不能http://www.bar.com或http://www.baz.com
www.foo.com <a href="http://www.bar.com">http://www.baz.com</a>
我试图添加一个负向前查找,排除比赛,其次是“或<,但由于某些原因,它只是应用到.com中的“m”。所以,这个正则表达式仍然会返回http://www.bar.co和http://www.baz.co作为匹配。
我看不到我做错了什么...有什么想法?
\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))(?!["<])
下面是一个简单的例子太多:
((((ht|f)tps?:\/\/)|(www.))[a-zA-Z0-9_\-.:#/~}?]+)(?!["<])
我一直认为使用正则表达式测试工具可以帮助! http://www.gskinner.com/RegExr/ – Paul 2011-04-14 16:22:00
谢谢。我一直在使用其中之一。我也会试试这个,看它是否提供任何其他提示。 – 2011-04-14 16:28:42
你在用什么语言? – ridgerunner 2011-04-14 20:11:16