regex 正则表达式-匹配至少包含2个元音的行

whlutmcx  于 2023-03-31  发布在  其他
关注(0)|答案(3)|浏览(146)

我想找出所有至少包含两个元音的行。
我试着用这句话:.*[aeiou].{2,}\n
但它似乎没有成功,在这个失败的结果中,它仍然包含只有一个元音的偶数行,例如“abc123”enter image description here

osh3o9ms

osh3o9ms1#

我不知道你对句子的定义是什么,但是下面的句子匹配了两个元音,每个元音后面都跟有任何东西(甚至是其他元音)。
([aeiou].*){2}

9gm1akwq

9gm1akwq2#

那么像.*[aeiou].*[aeiou]这样简单的东西呢?
您的{2,}适用于之前的点。

9lowa7mx

9lowa7mx3#

如果你想匹配整行,你可以使用一个否定字符类来防止回溯:

^(?:[^aeiou\n]*[aeiou]){2}.*

说明

  • ^字符串开始
  • (?:非捕获组作为整个部分重复
  • [^aeiou\n]*[aeiou]可选重复匹配除列出字符或换行符以外的任何字符,然后匹配aeiou之一
  • ){2}关闭非捕获组并重复2次
  • .*匹配行的其余部分

Regex demo

相关问题