如何找到两个元音的单词

时间:2015-04-17 03:42:45

标签: python regex

如何使用python正则表达式在字符串中间找到带有两个元音的单词

这是我的代码:

s= "reading a book is great"

print(re.findall(r'\b(\w+[aeiyou]+w)\b',s))

预期输出:[book]

我的输出:[book],[grea]

1 个答案:

答案 0 :(得分:2)

将正则表达式中的+替换为{2},因为+重复前一个令牌一次或多次{2}正好重复前一个令牌2次。

print(re.findall(r'\b\w[aeiou]{2}\w\b',s))

对于大写和小写元音。

print(re.findall(r'\b\w[aeiouAEIOU]{2}\w\b',s))

如果您不希望在元音之前或之后存在数字或[A-Za-z],则可以使用\w代替_。因为\w也匹配_和数字。

print(re.findall(r'\b[A-Za-z][aeiouAEIOU]{2}[A-Za-z]\b',s))

添加不区分大小写的修饰符(?i)re.IGNORECASE以执行不区分大小写的匹配。

print(re.findall(r'(?i)\b[a-z][aeiou]{2}[a-z]\b',s))