Python正则表达式,匹配太多
嗨,我有一个正则表达式Python正则表达式,匹配太多,python,html,regex,Python,Html,Regex,嗨,我有一个正则表达式 。。。 我试图提取的部分是 2。。。 它从第一个 为什么会发生这种情况?我认为(+?)是非贪婪的,所以它应该提取最小的数量应该是 我使用的完整python代码是match=re.compile(“”,re.DOTALL).findall(pagenav)从某种意义上说,匹配的开始总是贪婪的。这是因为引擎尝试从左到右匹配主题字符串。第一个如果使用”而不是“(与给定示例中的第二个锚定标记一样)?如果属性之间有多个空格该怎么办?如果不仅仅是href和class属性,还有
。。。
我试图提取的部分是2。。。
它从第一个
为什么会发生这种情况?我认为(+?)是非贪婪的,所以它应该提取最小的数量
应该是
我使用的完整python代码是
match=re.compile(“”,re.DOTALL).findall(pagenav)
从某种意义上说,匹配的开始总是贪婪的。这是因为引擎尝试从左到右匹配主题字符串。第一个如果使用”
而不是“
(与给定示例中的第二个锚定标记一样)?如果属性之间有多个空格该怎么办?如果不仅仅是href
和class
属性,还有更多属性该怎么办?如果class
属性列在href
属性之前该怎么办
jdotjdot的答案提供了一个很好的例子,说明了如何在Python中以正确的方式进行操作
它从第一个文件中提取所有内容
为什么会发生这种情况?我认为(+?)是非贪婪的,所以它应该提取最小的数量
它不是贪婪的。但是,您有一个强制的class=“nextpostslink”>
正则表达式,这一事实迫使引擎匹配所有内容,直到它找到class=“nextpostslink”>
据我所知,贪婪从正则表达式的开始就起作用——即,它在这里找到:
可能是重复的哎哟…你为什么不使用lxml或美丽的汤呢?啊,我想可能是这样的,但第一次(在第一个街区)效果很好,所以我认为这不是原因。谢谢[^“]效果很好。谢谢我给美丽的汤一次机会。我的目标是使它成为XBMC的插件,所以我试图避免安装任何额外的模块。但是现在我看到XBMC确实包含了一个漂亮的汤和PARSEDOM模块,所以我试着尝试一下其中的一个。<代码> LXML更快,所以也考虑一下。
<a href="([^"]*)" class="nextpostslink">
from bs4 import BeautifulSoup as BS
soup = BS(html)
print soup.find("a", "nextpostslink").attrs['href']
# returns u'http://cinemassacre.com/category/avgn/page/2/'