2016-02-20 81 views
1

我輸入:刪除一切

string input = "0173706W(L31T*am)ABOVEPOVERTYLINE(APL)" 

所需的輸出:

string outpput = "0173706" 

嘗試截至目前

Regex.Replace(EditedFeild3, "[^0-9]", ""); 

此輸入樣本僅僅是一個例子來自許多不同的執行。

所以,我正在尋找一個正則表達式的任何字母或特殊字符發現

回答

0

解決使用

EditedFeild3 = new string(EditedFeild3.TakeWhile(Char.IsDigit).ToArray()); 

希望它可以幫助別人。

4

後,您可以使用正則表達式如下

(.*?)[a-zA-Z].* 
^^^^^    : Capture lazily 
    ^^^^^^^^^^ : Match anything after first letter 

要刪除第一個字母后,一切都將刪除一切,更換字符串由$1 - 第一個被捕獲的組。

RegEx Demo


您還可以使用

^([^a-zA-Z]*) 

,並獲得第一捕獲組串。

RegEx Demo

+0

我不希望捕捉到它,我想刪除它 –

+0

@ArijitMukherjee嘗試'Regex.Replace(EditedFeild3, 「」 「[A-ZA-Z]。*」);' – Tushar

+0

我很好已經使用'EditedFeild3 =新字符串(EditedFeild3.TakeWhile(Char.IsDigit).ToArray())解決了它;' –

1
static void Main(string[] args) 
{ 
     string name = "0173706W(L31T*am)ABOVEPOVERTYLINE(APL)"; 

     name = name.Substring(0, name.IndexOf('6') + 1); 
     Console.WriteLine(name); 

} 
+1

添加一些解釋 – Tushar