使用诸如
https://search.yahoo.com/search?p=Fetty+Wap&fr=fp-tts&
我正在使用
pat = re.compile('<a href="(https?://.*?)".*',re.DOTALL)
作为一种搜索模式。在
我想选择任何一个url,比如上面的yahoo url,但是我想捕获实际url中的?
的url。在
{{1>不想把所有的url都提取出来。在这种情况下,我需要捕获所有的url。在
上面的regex可以工作并提取url,但会转到url的末尾。我怎样才能让它在它遇到的第一个?
处停下来,如果它没有遇到?
,我该怎么做呢
上面的泡泡解决方案对我很管用
“您可以使用否定类:]*?href=“(http[^”?]+)“<;-bobbles回答。在
url如下所示
https://search.yahoo.com/search?p=Justin+Bieber&fr=fp-tts&fr2=p:fp,m:tn,ct:all。。。。。。在
也可能是这样 https://www.yahoo.com/style/5-joyful-bob-ross-tees-202237009.html
目标是提取完整的网址,如果没有文字?但如果它真的停在文字之前?。在
是波波泡泡回答和工作非常干净,做了我想做的,再次感谢大家参加这次讨论,真的很感谢。在
我同意另一个答案,即在这里使用regexp并不是一个解决方案,特别是因为在打开
<a>
标记和href参数之前,有许多参数,所以在这两者之间也可能有一个新行。在但是,回答最初的问题:
“*”、“+”和“?”限定符都是贪婪的-它们匹配尽可能多的文本
这就是为什么有非贪婪的版本:
“*?”, '+?' 还有“??”在
Regex确实是一个错误的工具。基本的分裂你会得到一个基本的字符串。在
如果您真的想使用regex,我想您可以执行以下操作:
^{pr2}$相关问题 更多 >
编程相关推荐