Skip to main content
 首页 » 编程设计

Python 正则表达式之限制结果

2025年05月04日27kenshinobiy

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

此外,是否有一种更快的搜索 HTML 文档的方法,这样我的程序就不会因为正则表达式搜索这个非常长的文本“字符串”而变慢?

谢谢。

编辑

我有 Beautiful Soup,我用它只是为了让事情更容易阅读......但不是解析。

我也用过 lxml...哪个更好/更快?

请您参考如下方法:

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

这是一个例子:

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