正则表达式在字符串

时间:2015-07-12 04:26:48

标签: python pattern-matching string-matching

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

>>> 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

1 个答案:

答案 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']