我正试图从这个文本中获取所有网址,绝对和相对URL,但我没有得到正确的正则表达式。表达结合了比我想要的更多的东西,获取我不想要的HTML标记和其他信息。
(\w*.)(\\\/){1,}(.*)(?![^"])
<div class=\"loader\">\n <div class=\"loaderImage\"><img src=\"\/c\/Community\/Rating\/img\/loader.gif\" \/><\/div>\n <\/div>\n<\/div>\n<\/div><\/span><\/span>\n
<a title=\"Avengers\" href=\"\/pt\/movie\/Avengers\/57689\" >Avengers<\/a> <\/div>\n
<img title=\"\" alt=\"\" id=\"145793\" src=\"https:\/\/images04-cdn.google.com\/movies\/74932\/74932_02\/previews\/2\/128\/top_1_307x224\/74932_02_01.jpg\" class=\"tlcImageItem img\" width=\"307\" height=\"224\" \/>
pageLink":"\/pt\/videos\/\/updates\/1\/0\/Category\/0","previousPage":"\/pt\/videos\/\/updates\/1\/0\/Category\/0","nextUrl":"\/pt\/videos\/\/updates\/2\/0\/Category\/0","method":"updates","type":"scenes","callbackJs"
<span class=\"value\">4<\/span>\n <\/div>\n <\/div>\n <div class=\"loader\">\n <div class=\"loaderImage\"><img src=\"\/c\/Community\/Rating\/img\/loader.gif\" \/><\/div>\n <\/div>\n<\/div>\n<\/div><\/span><\/span>
发布于 2019-04-23 11:03:25
使用RegEx解决此问题可能并不是最好的主意。但是,如果你希望练习,则可以在""
URL存在的位置之间进行完全匹配。可以使用scr
,href
或任何其他固定组件从左边绑定它们。只需使用|并在第一组中列出它们即可()
。
此RegEx可能不是正确的解决方案,但它会让你了解如何使用RegEx解决此问题:
(src=|href=)(\\")([a-zA-Z\\\/0-9\.\:_-]+)(")
它创建了四个组,以便简化更新,并且该$3
组可能是您想要的URL。可以添加你的网址可能包含在第三组中的任何字符。
要捕获其他非HTML URL,可以更新类似于此RegEx:
(src=\\|href=\\|pageLink\x22:|previousPage\x22:|nextUrl\x22:)(")([a-zA-Z\\\/0-9\.\:_-]+)(")
你可以简单地替换\x22,目标网址位于以下位置的内容:
第二个RegEx也有四个组,目标组是$3
。如果愿意,也可以简化或干燥它。
https://stackoverflow.com/questions/-100006655
复制相似问题