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

如何找到有两个元音的单词 如何使用Python正则表达式在字符串中找到两个元音的单词,python,regex,Python,Regex,这是我的代码: s= "reading a book is great" print(re.findall(r'\b(\w+[aeiyou]+w)\b',s)) 预期输出:[book] 我的输出:[book],[grea]将正则表达式中的+替换为{2},因为+将前一个令牌重复一次或多次,其中{2}将前一个令牌完全重复两次 print(re.findall(r'\b\w[aeiou]{2}\w\b',s)) 用于大写和小写元音 print(re.findall(r'\b\w[aeiouAEI

这是我的代码:

s= "reading a book is great"

print(re.findall(r'\b(\w+[aeiyou]+w)\b',s))
预期输出:
[book]


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

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

print(re.findall(r'\b\w[aeiou]{2}\w\b',s))
用于大写和小写元音

print(re.findall(r'\b\w[aeiouAEIOU]{2}\w\b',s))
如果您不希望在元音之前或之后存在数字或
\uu
,则可以使用
[A-Za-z]
而不是
\w
。因为
\w
也与
\u
和数字匹配

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

一个真正的野兽:这就是为什么他们创建了不区分大小写的修饰符,所以你可以简化模式=)