javascript 正则表达式否定检测 Url 不包含给定域
javascript regex negation detect Url NOT containing given domain
我需要检查一些 html 文件并提取未引用 2 个网站的 urls
经过多次测试,我得到了这个
/(http|https)?:?(\/\/)\w*\.*\-*[^(mysite.com)]\w*\.?\S*/igm
效果不错..但不完美:
例如,可以看到HERE on regexr.com 它匹配
// End
但不是
www.demo.com
while应该是country,但是在(\/\/)
后面加了一个?
就变成了一个不常用的"catch all"
并且如果 url 在开头和结尾都有一个 "
,这显然经常发生
不抓开始"
(正确)但抓结束一个(错误)
最后它不应该也匹配 theothermysite.net
但很好理解如何处理 OR 与否定 :-(
可以帮忙吗?
乔
喜欢this?
/((http|https):(\/\/)|www\.)\w*\.*\-*[^(mysite.com)(theothermysite.net)]\w*\.?[^\s\t\r\n\"]*/igm
我刚刚添加了一个 "or www",用它的组件加上 \"
替换了 \S
,并向否定中添加了另一个原子组,就像您已经对 mysite.com
[= 所做的那样15=]
我需要检查一些 html 文件并提取未引用 2 个网站的 urls
经过多次测试,我得到了这个
/(http|https)?:?(\/\/)\w*\.*\-*[^(mysite.com)]\w*\.?\S*/igm
效果不错..但不完美:
例如,可以看到HERE on regexr.com 它匹配
// End
但不是
www.demo.com
while应该是country,但是在(\/\/)
后面加了一个?
就变成了一个不常用的"catch all"
并且如果 url 在开头和结尾都有一个 "
,这显然经常发生
不抓开始"
(正确)但抓结束一个(错误)
最后它不应该也匹配 theothermysite.net
但很好理解如何处理 OR 与否定 :-(
可以帮忙吗?
乔
喜欢this?
/((http|https):(\/\/)|www\.)\w*\.*\-*[^(mysite.com)(theothermysite.net)]\w*\.?[^\s\t\r\n\"]*/igm
我刚刚添加了一个 "or www",用它的组件加上 \"
替换了 \S
,并向否定中添加了另一个原子组,就像您已经对 mysite.com
[= 所做的那样15=]