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

标签 python regex

我觉得问这个问题有点愚蠢,但我已经编写了一些正则表达式来查找 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']

关于Python 正则表达式 - 限制结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11902378/

相关文章:

python - 如何在字符串中交替更改大写和小写?

用于检查数字是否有%符号的JavaScript正则表达式

java - Java中如何将无效字符更改为有效字符?

python - 更改非最大抑制以选择Python中OpenCV的最小框

python - 如何根据 bash 脚本中的正则表达式拆分字符串

python - 在 pycharm/pydev 中调试 pytest 事后异常

python - 如何建立从wxpython桌面应用程序到远程mysql数据库的连接?

javascript - 正则表达式匹配以 开头的字符串。 # 和正常的一样

ruby - 两个字符串的正则表达式格式

javascript - 如何从该字符串中提取单个值?