正则表达式子字符串在字符串的任何位置不匹配

Regex substring one mismatch in any location of string

有人可以解释为什么下面的代码 returns 是一个空列表:

>>> import re
>>> m = re.findall("(SS){e<=1}", "PSSZ")
>>> m
[]

我试图找出 SSPSSZ 中出现的总次数(并包含 最多有一个不匹配 的可能性)。

我在这里看到了一个类似的代码示例:Search for string allowing for one mismatch in any location of the string

您需要删除范围限定符内的 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']