以下正则表达式found here与下面的域匹配得很好,但我不希望它匹配已经在锚标记中的域(最后一个示例)请注意,此匹配将检测这些文本句子中的案例。
((?: http| https)://)?[.0-9a-z-]+\.[a-z]{2,6}(?::[0-9]{1,5}+)?(?:/[!$'()*+,._a-z-]++){0,9}(?:/[!$'()*+,._a-z-]*)?(?:\?[!$&'()*+,.=_a-z-]*)?
在句子或段落中匹配:
www.domain.com
domain.com
this.is.a.special.url.domain.com/hello
http://domain.com
http://www.domain.com
http://www.domain.com/
http://www.domain.com/index.html
http://www.domain.com/index.html?source=library
但是,如何将正则表达式更改为与锚标记中已有的域不匹配?
<a href="http://www.usertesting.com">hello</a>
答案 0 :(得分:1)
你可以添加负面的lookbehind来排除href="
或href='
之后的匹配:
(?<!href=["'])((?: http| https)://)?[.0-9a-z-]+\.[a-z]{2,6}(?::[0-9]{1,5}+)?(?:/[!$'()*+,._a-z-]++){0,9}(?:/[!$'()*+,._a-z-]*)?(?:\?[!$&'()*+,.=_a-z-]*)?