我有一个与某些URL匹配的简单正则表达式,它可以正常工作,但是我想对其进行一些改进,以便排除包含特定单词的URL.
我的模式:(http:[A-z0-9./~%])
IE浏览器:
http://maps.google.com/maps
http://www.google.com/flights/gwsredirect
http://slav0nic.org.ua/static/books/python/
http://webcache.googleusercontent.com/search
http://www.python.org/ftp/python/doc/
http://webcache.googleusercontent.com/search
http://www.python.org/ftp/python/
提供上面与我的模式匹配的URL列表,我想优化我的模式以排除包含单词的URL,例如google
我尝试使用非捕获组,但未成功,也许我丢失了一些东西.
附加信息
也许我的描述不清楚.
好的,我有一个从URL抓取的数据文件,然后使用提供的模式提取给定链接的列表,但是您可以看到该模式返回的所有链接的作用超出了我的期望.因此,我想对其进行优化,以使其不包含包含某些单词的链接,即:google
因此,在我解析数据而不是返回上面的链接列表之后,它将返回以下内容:
http://slav0nic.org.ua/static/books/python/
http://www.python.org/ftp/python/doc/
http://www.python.org/ftp/python/
感谢所有帮助,谢谢!
解决方法:
尝试这个:
(http:(?![^"\s]*google)[^"\s]+)["\s]
与之前发布的解决方案的主要区别在于,我控制搜索匹配的长度.
标签:java,regex
来源: https://codeday.me/bug/20191201/2084324.html