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

时间:2010-10-04 19:35:21

标签: c# string parsing

我正在尝试解析一个字符串,在某些情况下,最后会有一个额外的“ - [某个数字]”。例如,

而不是显示

 Technologist

显示

Technologist - 23423

我不想只检查或拆分“ - ”,因为还有其他名称中有“ - ”

任何人都可以想到一种清除这种额外噪音的方法:

技师 - 23423 解析为技师

2 个答案:

答案 0 :(得分:2)

这看起来像一个正则表达式,例如@“ - \ 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+$");

答案 1 :(得分:0)

试试这个正则表达式:

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