摆脱字符串末尾的所有元音

时间:2014-06-20 17:19:50

标签: c# regex string visual-studio-2010 replace

这就是我所拥有的:

word = Regex.Replace(word, @"[aeiouyAEIOUY]\z", String.Empty);

但我认为这只能摆脱最后一个字母(如果它是一个元音)。

所以jrhyui会返回jrhyu,而我真的想要返回jrh

3 个答案:

答案 0 :(得分:4)

你关闭了。 [aeiouyAEIOUY]是一个完全匹配一个元音的字符类。您想要从字符串末尾删除所有元音,因此匹配字符类的一个或多个实例。您可以通过在末尾附加+来执行此操作,如下所示:

[aeiouyAEIOUY]+\z
           // ^-- match any single character in the list one or more times

Regex101 Demo

答案 1 :(得分:0)

对原始代码的轻微调整应该这样做:

word = Regex.Replace(word, @"[aeiouyAEIOUY]*\z", String.Empty);

答案 2 :(得分:0)

以下模式符合您的条件:(?i)[aeiou]+(?>$)(?-i)