一组元音后不消耗1个辅音?

时间:2016-07-07 04:38:56

标签: regex python-3.x

这是一个脚本,它将显示只包含2个辅音之间长度大于2的元音的子串。

import re
v = "aeiou"
c = "qwrtypsdfghjklzxcvbnm"
m = re.findall(r"(?<=[%s])([%s]{2,})[%s]" % (c, v, c), input(), flags = re.I)
print('\n'.join(m or ['-1']))

它完美无缺,但我无法理解。为什么在元音组之后它不会消耗1个辅音?

1 个答案:

答案 0 :(得分:0)

我认为这是因为[%s]未包含在()括号中:

  

(...)匹配括号内的RE              可以在字符串中检索或匹配内容。

虽然为(?<=[%s])([%s]{2,})([%s])执行qaer会给m=[('ae','r')]