我试图解析出一个字符串,并且在某些情况下最后还有一个额外的“ - [某个数字]”。为例子,如何检测以数字结尾的字符串
而不是显示
Technologist
它显示
Technologist - 23423
我不想只是检查或分裂“ - ”因为有确实有其他的名字一个“ - ”在他们
谁能想到这去除多余的噪音等等的清洁方法:
技师 - 23423解析为技师
我试图解析出一个字符串,并且在某些情况下最后还有一个额外的“ - [某个数字]”。为例子,如何检测以数字结尾的字符串
而不是显示
Technologist
它显示
Technologist - 23423
我不想只是检查或分裂“ - ”因为有确实有其他的名字一个“ - ”在他们
谁能想到这去除多余的噪音等等的清洁方法:
技师 - 23423解析为技师
这看起来像一个情况下正则表达式,如@ “ - \ 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+$");
我如何去检查,如果我需要做一个整洁。我想我可以在我的所有记录中打电话给泰迪,但是对其他人不会做任何事情。 – leora 2010-10-04 19:41:16
@ooo:是的,这比检查你是否需要整理更简单,然后只在必要时才这样做。 – 2010-10-04 19:47:09
试试这个正则表达式:
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
不'技师 - 2 - 12345'解析为'Technologist - 2'还是'Technologist'? – 2010-10-04 19:37:42
@迈克尔Petrotta - 我不会有这种情况下(因为我知道我的数据),但要完整:如果我有技术专家 - 234234我想它解决技术专家。因此,如果组合存在,删除最后一个空格 - 连字符组合后的所有数据?在我的例子中,我将永远不会有两组数字噪声(如 – leora 2010-10-04 19:39:33
)。或者可以删除最后一个短划线后的所有数据,并对结果进行空间裁剪。 – 2010-10-04 19:41:14