Python regex模式最大长度重新编译?

2024-10-01 17:25:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用python3中的re.compile编译一个大模式。在

我试图编译的模式是由500个小单词组成的(我想从文本中删除它们)。问题是它在大约18个单词之后停止了模式

Python不会引发任何错误。在

我要做的是:

stoplist = map(lambda s: "\\b" + s + "\\b", stoplist)
stopstring = '|'.join(stoplist)
stopword_pattern = re.compile(stopstring)

stopstring没问题(所有单词都在),但是模式要短得多。它甚至停在一个词中间!在

正则表达式模式有最大长度吗?在


Tags: lambda文本remap错误模式单词python3
1条回答
网友
1楼 · 发布于 2024-10-01 17:25:30

考虑这个例子:

import re
stop_list = map(lambda s: "\\b" + str(s) + "\\b", range(1000, 2000))
stopstring = "|".join(stop_list)
stopword_pattern = re.compile(stopstring)

如果你试着打印图案,你会看到

^{pr2}$

这似乎表明这个模式是不完整的。然而,这似乎只是__repr__和/或__str__方法对re.compile对象的限制。如果你成功的话,你也可以试试“如果你成功的话,你可以试试看”中的一部分

>>> stopword_pattern.match("1999")
<_sre.SRE_Match object; span=(0,4), match='1999')

相关问题 更多 >

    热门问题