我想找出所有至少包含两个元音的行。我试着用这句话:.*[aeiou].{2,}\n但它似乎没有成功,在这个失败的结果中,它仍然包含只有一个元音的偶数行,例如“abc123”enter image description here
osh3o9ms1#
我不知道你对句子的定义是什么,但是下面的句子匹配了两个元音,每个元音后面都跟有任何东西(甚至是其他元音)。([aeiou].*){2}
9gm1akwq2#
那么像.*[aeiou].*[aeiou]这样简单的东西呢?您的{2,}适用于之前的点。
.*[aeiou].*[aeiou]
{2,}
9lowa7mx3#
如果你想匹配整行,你可以使用一个否定字符类来防止回溯:
^(?:[^aeiou\n]*[aeiou]){2}.*
说明
^
(?:
[^aeiou\n]*[aeiou]
a
e
i
o
u
){2}
.*
Regex demo
3条答案
按热度按时间osh3o9ms1#
我不知道你对句子的定义是什么,但是下面的句子匹配了两个元音,每个元音后面都跟有任何东西(甚至是其他元音)。
([aeiou].*){2}
9gm1akwq2#
那么像
.*[aeiou].*[aeiou]
这样简单的东西呢?您的
{2,}
适用于之前的点。9lowa7mx3#
如果你想匹配整行,你可以使用一个否定字符类来防止回溯:
说明
^
字符串开始(?:
非捕获组作为整个部分重复[^aeiou\n]*[aeiou]
可选重复匹配除列出字符或换行符以外的任何字符,然后匹配a
e
i
o
u
之一){2}
关闭非捕获组并重复2次.*
匹配行的其余部分Regex demo