正则表达式元音顺序而不是所有元音?

时间:2011-06-22 14:28:35

标签: regex

我知道有类似的问题,但是最后一个问题只是说明一个单词是否包含单词中的所有元音。我想要做的是找出一个单词的元音是否按字母顺序排列。例如:几乎,各种等等。

我尝试了很多不同的解决方案,但是我无法完成这项工作。

类似的事情:

(a[^eiou]*)?(e[^aiou]*)?(i[^aeou]*)?(o[^aeio]*u)?

a[^eiou]*e[^aiou]*i[^aeou]*o[^aeio]*u

但这些不起作用。

3 个答案:

答案 0 :(得分:3)

你的第一次尝试并不太远,试试这个:

\b[^aeiou]*(?:a[^eiou]*)?(?:e[^aiou]*)?(?:i[^aeou]*)?(?:o[^aeiu]*)?u?[^aeio]*\b

here on Regexr

我补充说:

\b字边界以确保完整的单词匹配

开头的

[^aeiou]*匹配第一个“a”之前的非元音

(?:o[^aeio]*)?u?改变了最后一部分以使“o”可选

答案 1 :(得分:0)

\b[^aeiou]*a*[^eiou]*e*[^aiou]*i*[^aeou]o*[^aeiu]*u*[^aeio]*\b

怎么样?

答案 2 :(得分:0)

这是我的出价:

^[b-df-hj-np-tv-z]*?(?:a[b-df-hj-np-tv-z]*?)?(?:e[b-df-hj-np-tv-z]*?)?(?:i[b-df-hj-np-tv-z]*?)?(?:o[b-df-hj-np-tv-z]*?)?(?:u[b-df-hj-np-tv-z]*?)?$

也可以通过单词分隔符(\b)绑定,但似乎pass my testing