【发布时间】:2014-06-20 17:19:49
【问题描述】:
这就是我所拥有的:
word = Regex.Replace(word, @"[aeiouyAEIOUY]\z", String.Empty);
但我认为这只会去掉最后一个字母(如果它是元音)。
所以jrhyui 会返回jrhyu 而我真的想返回jrh。
【问题讨论】:
标签: c# regex string visual-studio-2010 replace
这就是我所拥有的:
word = Regex.Replace(word, @"[aeiouyAEIOUY]\z", String.Empty);
但我认为这只会去掉最后一个字母(如果它是元音)。
所以jrhyui 会返回jrhyu 而我真的想返回jrh。
【问题讨论】:
标签: c# regex string visual-studio-2010 replace
你已经接近了。 [aeiouyAEIOUY] 是一个与 one 元音完全匹配的字符类。您想从字符串末尾删除所有元音,因此匹配字符类的一个或多个实例。您可以通过在末尾附加 + 来做到这一点,如下所示:
[aeiouyAEIOUY]+\z
// ^-- match any single character in the list one or more times
【讨论】:
对您的原始代码稍作调整即可:
word = Regex.Replace(word, @"[aeiouyAEIOUY]*\z", String.Empty);
【讨论】:
以下模式将符合您的条件:(?i)[aeiou]+(?>$)(?-i)
【讨论】: