Python正则表达式 - 限制结果?

时间:2012-08-10 13:11:28

标签: python regex

我觉得有点愚蠢,但我已经做了一些正则表达式来查找HTML文档中的特定商家,地址和URL。问题是......我不知道应该使用哪个(python)正则表达式的东西。当我使用re.findall时,我得到30到90个结果。我想将它限制为3或5(一组数字)。我应该使用哪种正则表达式操作来执行此操作,或者是否有一个参数可以在达到一定数量的结果时停止搜索?

此外,是否有更快的搜索HTML文档的方式,以便我的程序不会因正常的表达式搜索这个非常长的字符串而变慢#34;字符串"文字?

感谢。

修改

我有美丽的汤,我已经用它来让事情更容易阅读......但不要解析。

我还使用了lxml ......哪个更好/更快?

1 个答案:

答案 0 :(得分:1)

不使用re.findall,而是使用re.finditer。它返回一个迭代器,根据需要产生下一个匹配。

以下是一个例子:

>>> [m.group(0) for m, _ in zip(re.finditer(r"\w", "abcdef"), range(3))]
['a', 'b', 'c']