我試圖解析出一個字符串,並且在某些情況下最後還有一個額外的「 - [某個數字]」。爲例子,如何檢測以數字結尾的字符串
而不是顯示
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