我需要检查一些html文件并提取未提及2个网站的网址
经过多次测试后我得到了这个/(http|https)?:?(\/\/)\w*\.*\-*[^(mysite.com)]\w*\.?\S*/igm
效果不错......但并不完美:
例如,可以看到它匹配的HERE on regexr.com
//结束
但不是
www.demo.com
虽然应该是计票,但在?
之后添加(\/\/)
会变成无用的“全部捕获”
如果url在开头和结尾都有"
,这种情况经常发生
不抓住开始"
(正确)但抓住结束一个(错误)
最后它也不应该匹配theothermysite.net
但是很好理解如何处理OR与否定: - (
可以帮忙吗?
乔
答案 0 :(得分:1)
赞this?
/((http|https):(\/\/)|www\.)\w*\.*\-*[^(mysite.com)(theothermysite.net)]\w*\.?[^\s\t\r\n\"]*/igm
我刚刚添加了一个"或www",将\S
替换为其组件加\"
,并添加了另一个原子组,就像你已经使用mysite.com
一样