我正在尝试从此文本中获取所有网址。绝对和相对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>
答案 0 :(得分:1)
如前所述,使用RegEx解决此问题可能并不是最好的主意。但是,如果您想练习或确实需要练习,则可以在URL存在的""
之间进行精确匹配。您可以使用scr
,href
或任何其他可能的固定组件从左侧装订它们。您可以简单地使用 | 并将它们列出在第一组()
中。
This RegEx可能不是正确的解决方案,但它可能会给您一个视角,说明如何使用RegEx解决此问题:
(src=|href=)(\\")([a-zA-Z\\\/0-9\.\:_-]+)(")
它将创建四个组,以便简化更新,而$3
组可能是您想要的URL。您可以在第三组中添加URL可能包含的所有字符。
要捕获其他非HTML网址,您可以像this RegEx一样对其进行更新:
(src=\\|href=\\|pageLink\x22:|previousPage\x22:|nextUrl\x22:)(")([a-zA-Z\\\/0-9\.\:_-]+)(")
其中\x22
代表“ ,您可以将其替换。我刚刚添加了\x22
,以便您可以看到那些” ,您的目标网址位于以下位置:
第二个RegEx也有四个组,其中目标组为$3
。如果愿意,您也可以简化或DRY。