"Empty matches are included in the result."是什么意思?

What is the meaning of "Empty matches are included in the result."?

我指的是 re.findall 函数的文档:

“结果中包含空匹配”是什么意思。?

它只是表示当匹配为“”或空字符串时,它包含在结果列表中。

如果主题是空字符串,则对于任何可以找到 ... 的正则表达式,fullmatch() 的计算结果为 True 整个正则表达式匹配不包含在元组中,除非您将整个 ... 出现在正则表达式,因为原始字符串不提供转义它的方法。

当您使用匹配空字符串的组时会发生这种情况,例如:

 print(re.findall(r'(\w)(\d?)(\w)', "bc"))

输出:

[('b', '', 'c')]

此处组 (\d?) 匹配 '' 并包含在结果中。

零长度匹配,或空匹配。

正则表达式由边界定义或锚点组成,例如运算符 ^。一旦锚点被击中,你就有了一个匹配项,可以是 "empty",紧随其后的是另一个锚点。