这是一个脚本,它将显示只包含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个辅音?
答案 0 :(得分:0)
我认为这是因为[%s]
未包含在(
,)
括号中:
(...)匹配括号内的RE 可以在字符串中检索或匹配内容。
虽然为(?<=[%s])([%s]{2,})([%s])
执行qaer
会给m=[('ae','r')]
。