我正在尝试长时间刺痛并提取它包含的所有网址。
page.findall(r"http://.+")
是我拥有的,但这不会导致我想要的东西。网址都用双引号括起来,所以如何告诉正则表达式在到达“?
时停止匹配答案 0 :(得分:3)
有非常复杂的网址解析正则表达式,但是如果你想停在"
,只需使用[^\"]+
作为网址部分。
或切换为单引号字符串并删除\
。
另外,如果你混入了https
,它就会中断,所以你可能只想跟着
page.findall(r'"(http[^"]+)"')
但现在我们正在进入url-parsing正则表达式。
答案 1 :(得分:0)
最好在此处使用非贪婪表达式,而不是使用[^\"]+
。那样你的正则表达式就是r'"http://.+?"'
。加号后面的问号使得它找到第一次遇到双引号。