我试图匹配包含两个或多个不同元音的字符串中的单词。问题可以限制为小写。
string = '游泳池磅脊髓灰质炎爸爸挑选对'
预期结果:
磅, 脊髓灰质炎, 对
pool 和 papa 会失败,因为它们只包含一个不同的元音。但是,小儿麻痹症很好,因为即使它包含两个 'o',它也包含两个不同的元音('i' 和 'o')。密西西比会失败,但阿尔伯克基会通过)。
思考过程:使用环顾四周,大概五次(忽略大写),用括号括起来,然后是 {2}。就像是:
re.findall(r'\w*((?=a{1})|(?=e{1})|(?=i{1})|(?=o{1})|(?=u{1})){2}\w*', string)
Run Code Online (Sandbox Code Playgroud)
但是,这与所有六个单词都匹配。
我杀死了 {1},这使它更漂亮({1} 似乎是不必要的),但它仍然返回所有六个:
re.findall(r'\w*((?=a)|(?=e)|(?=i)|(?=o)|(?=u))\w*', string)
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助。我检查了其他查询,包括“如何找到带有两个元音的单词”,但似乎没有一个足够接近。另外,我正在寻找纯正则表达式。