2010-10-04 85 views
0

我試圖解析出一個字符串,並且在某些情況下最後還有一個額外的「 - [某個數字]」。爲例子,如何檢測以數字結尾的字符串

而不是顯示

Technologist 

它顯示

Technologist - 23423 

我不想只是檢查或分裂「 - 」因爲有確實有其他的名字一個「 - 」在他們

誰能想到這去除多餘的噪音等等的清潔方法:

技師 - 23423解析爲技師

+2

不'技師 - 2 - 12345'解析爲'Technologist - 2'還是'Technologist'? – 2010-10-04 19:37:42

+0

@邁克爾Petrotta - 我不會有這種情況下(因爲我知道我的數據),但要完整:如果我有技術專家 - 234234我想它解決技術專家。因此,如果組合存在,刪除最後一個空格 - 連字符組合後的所有數據?在我的例子中,我將永遠不會有兩組數字噪聲(如 – leora 2010-10-04 19:39:33

+0

)。或者可以刪除最後一個短劃線後的所有數據,並對結果進行空間裁剪。 – 2010-10-04 19:41:14

回答

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+$"); 
+0

我如何去檢查,如果我需要做一個整潔。我想我可以在我的所有記錄中打電話給泰迪,但是對其他人不會做任何事情。 – leora 2010-10-04 19:41:16

+0

@ooo:是的,這比檢查你是否需要整理更簡單,然後只在必要時才這樣做。 – 2010-10-04 19:47:09

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 
相關問題