代码之家  ›  专栏  ›  技术社区  ›  leora Matt Lacey

如何检测以数字结尾的字符串

  •  0
  • leora Matt Lacey  · 技术社区  · 14 年前

    我试图解析出一个字符串,在某些情况下,在末尾有一个额外的“-[一些数字]”。例如,

     Technologist
    

    它显示了

    Technologist - 23423
    

    我不想只检查或分割“-”,因为有其他的名字,有一个“-”在他们

    有人能想出一个干净的方法来消除这些额外的噪音吗

    技术员-23423 决心 技术员

    2 回复  |  直到 14 年前
        1
  •  2
  •   Jon Skeet    14 年前

    这看起来像是一个case正则表达式,例如本例中的@“-\d+$”。示例代码:

    using System;
    using System.Text.RegularExpressions;
    
    class Test
    {
        static void Main()
        {
            Tidy("Technologist - 12345");
            Tidy("No trailing stuff");
            Tidy("A-B1 - 1 - other things");
        }
    
        private static readonly Regex regex = new Regex(@"- \d+$");
    
        static void Tidy(string text)
        {
            string tidied = regex.Replace(text, "");
            Console.WriteLine("'{0}' => '{1}'", text, tidied);
        }
    }
    

    请注意,当前 找出负数。如果你想的话,你可以用

    new Regex(@"- -?\d+$");
    
        2
  •  0
  •   Lasse Espeholt    14 年前

    尝试以下正则表达式:

    var strRegex = @"\s*-\s*\d+$";
    
    var regex = new Regex(strRegexs);
    
    var strTargetString = "Technologist - 23423";
    
    var res = myRegex.Replace(strTargetString, "");
    

    这将对以下字符串起作用(所有字符串都将计算为 Text

    Text - 34234
    Text -1
    Text    -     342
    Text-3443