正则表达式匹配不带\\“或<的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_\\-.:#/~}?]+)(?![\"<])
没有找到相关结果
已邀请:
2 个回复
bab
Perl测试:
输出:
体悉