【问题标题】:Get rid of all vowels at the end of a string去掉字符串末尾的所有元音
【发布时间】:2014-06-20 17:19:49
【问题描述】:

这就是我所拥有的:

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

但我认为这只会去掉最后一个字母(如果它是元音)。

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

【问题讨论】:

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


    【解决方案1】:

    你已经接近了。 [aeiouyAEIOUY] 是一个与 one 元音完全匹配的字符类。您想从字符串末尾删除所有元音,因此匹配字符类的一个或多个实例。您可以通过在末尾附加 + 来做到这一点,如下所示:

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

    Regex101 Demo

    【讨论】:

      【解决方案2】:

      对您的原始代码稍作调整即可:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2022-11-15
          • 2011-05-11
          • 2021-06-03
          • 2019-04-30
          • 1970-01-01
          • 2019-09-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多