查找与 3 个连续元音正则表达式匹配的单词

find words that matches the 3 consecutive vowels Regex

text = "Life is beautiful"
pattern = r"[aeiou]{3,}"
result = re.findall(pattern, text)
print(result)

想要的结果: ['beautiful']

我得到的输出: ['eau']

我试过谷歌搜索等...我找到了多个答案,但其中 none 个有效!! 我是正则表达式的新手,所以也许我遇到了问题,但我不确定如何解决这个问题

我已经尝试使用 r"\b[abcde]{3,}\b" 仍然没有所以请帮助!!

您的正则表达式仅捕获 3 个连续的元音,因此您需要扩展它以捕获单词的其余部分。这可以通过查找两个分词之间的字母序列并对序列中的 3 个连续元音使用正向先行来完成。例如:

import re

text = "Life is beautiful"
pattern = r"\b(?=[a-z]*[aeiou]{3})[a-z]+\b"
result = re.findall(pattern, text, re.I)
print(result)

输出:

['beautiful']

对前一个解决方案的一点改进是使用 \w 而不是 a-z 作为字符 类(这将匹配大小写字母)

\b[\w]+[aeiou]{3,}[\w]+\b

干杯!