有人可以解释为什么下面的代码会返回一个空列表:
>>> import re
>>> m = re.findall("(SS){e<=1}", "PSSZ")
>>> m
[]
我试图在SS
内找到PSSZ
的出现次数(并将最多可能出现一次不匹配的可能性加入)。
我在这里看到了类似的代码示例:Search for string allowing for one mismatch in any location of the string
答案 0 :(得分:0)
您需要删除范围量词中存在的e<=
个字符。范围量词必须是,
{n}
。重复上一个令牌n
次。{min,max}
从最小到最大次数重复上一个标记。会是,
m = re.findall("(SS){1}", "PSSZ")
或
m = re.findall(r'SS','PSSZ')
<强>更新强>
>>> re.findall(r'(?=(S.|.S))', 'PSSZ')
['PS', 'SS', 'SZ']