首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >拥有超过100个组的Python正则表达式?

拥有超过100个组的Python正则表达式?
EN

Stack Overflow用户
提问于 2009-01-25 22:48:56
回答 11查看 9.7K关注 0票数 22

有没有办法突破Python中正则表达式100组的限制?另外,有人能解释一下为什么会有限制吗?

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2009-01-26 21:58:27

我不确定你到底在做什么,但试着使用一个单独的组,里面有很多OR子句...所以(这个)|(那个)变成了(这个|那个)。您可以通过传递一个函数来对结果做一些聪明的事情,该函数对匹配的特定单词执行某些操作:

代码语言:javascript
复制
 newContents, num = cregex.subn(lambda m: replacements[m.string[m.start():m.end()]], contents)

如果你真的需要这么多组,你可能不得不分阶段去做……一次通过十几个大的组,然后在这些组中的每个组中进行另一次传递,以获得您想要的所有细节。

票数 5
EN

Stack Overflow用户

发布于 2009-01-25 22:54:05

这是有限制的,因为它将占用太多的内存来有效地存储完整的状态机。我要说的是,如果你的re中有超过100个组,那么无论是re本身还是你使用它们的方式都有问题。也许您需要拆分输入,并在较小的块或其他工作。

票数 10
EN

Stack Overflow用户

发布于 2013-01-18 10:37:06

我发现最简单的方法就是

代码语言:javascript
复制
import regex as re

而不是

代码语言:javascript
复制
import re

我相信正则表达式的默认_MAXCACHE是500而不是100。这是我发现regex是比re更好的模块的众多原因之一。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/478458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档