例如,所需的正则表达式将成功匹配“areriroru”但不匹配仅包含两个元音的“sadwdij”。
答案 0 :(得分:2)
在C#中,您可以在将字符串与.*
匹配之前为每个元音使用超前断言:
(?=.*a)(?=.*e)(?=.*i)(?=.*o)(?=.*u).*
如果您不关心元音的情况,可以使用:
(?=.*[Aa])(?=.*[Ee])(?=.*[Ii])(?=.*[Oo])(?=.*[Uu]).*
答案 1 :(得分:1)
一种可能性是枚举元音的所有排列。以下是总共120个中的前24个(所有a
是第一个元音)。请注意,这形成了一个长表达式,但为了清楚起见,我将其拆分为行。
a.*e.*i.*o.*u
|a.*e.*i.*u.*o
|a.*e.*o.*i.*u
|a.*e.*o.*u.*i
|a.*e.*u.*i.*o
|a.*e.*u.*o.*i
|a.*i.*e.*o.*u
|a.*i.*e.*u.*o
|a.*i.*o.*e.*u
|a.*i.*o.*u.*e
|a.*i.*u.*e.*o
|a.*i.*u.*o.*e
|a.*o.*e.*i.*u
|a.*o.*e.*u.*i
|a.*o.*i.*e.*u
|a.*o.*i.*u.*e
|a.*o.*u.*e.*i
|a.*o.*u.*i.*e
|a.*u.*e.*i.*o
|a.*u.*e.*o.*i
|a.*u.*i.*e.*o
|a.*u.*i.*o.*e
|a.*u.*o.*e.*i
|a.*u.*o.*i.*e