我的问题很简单,假设我想匹配一个单词中的元音字母,但我想按照它们出现的特定顺序进行匹配,如a、e、i、o、u。我该如何做呢?
所以你需要查找一个 a
,然后跟随一些字符,接着是 e
,再跟随一些字符,然后是 i
,再跟随一些字符,然后是 o
,再跟随一些字符,最后是不跟随 u
,且最后必须是 u
。
换句话说,首先是 a
,然后是不是 e
的一些东西,再是 e
。接着是不是 i
的一些东西,再是 i
。然后是不是 o
的一些东西,再是 o
。最后是不是 u
的一些东西,且最后必须是 u
。
用正则表达式表示为: a[^e]*e[^i]*i[^o]*o[^u]*u
(虽然你可以使用 .*?
,但为什么不更精确地定义你的意思呢?)
a.*?e.*?i.*?o.*?u
但是这个问题与Alvin对Votley答案的评论中指出的问题相同。这是由于问题没有足够的说明。没有说明优先级是什么。
/i
就可以了。(-: 大写字母只是为了易读性,与小写字母实际上没有区别。但没错——"sacrilegious" 也会匹配。 - VoteyDisciple