如何使用python正则表达式在字符串中间找到带有两个元音的单词
这是我的代码:
s= "reading a book is great"
print(re.findall(r'\b(\w+[aeiyou]+w)\b',s))
预期输出:[book]
我的输出:[book],[grea]
答案 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))