这就是我所拥有的:
word = Regex.Replace(word, @"[aeiouyAEIOUY]\z", String.Empty);
但我认为这只能摆脱最后一个字母(如果它是一个元音)。
所以jrhyui
会返回jrhyu
,而我真的想要返回jrh
。
答案 0 :(得分:4)
你关闭了。 [aeiouyAEIOUY]
是一个完全匹配一个元音的字符类。您想要从字符串末尾删除所有元音,因此匹配字符类的一个或多个实例。您可以通过在末尾附加+
来执行此操作,如下所示:
[aeiouyAEIOUY]+\z
// ^-- match any single character in the list one or more times
答案 1 :(得分:0)
对原始代码的轻微调整应该这样做:
word = Regex.Replace(word, @"[aeiouyAEIOUY]*\z", String.Empty);
答案 2 :(得分:0)
以下模式符合您的条件:(?i)[aeiou]+(?>$)(?-i)