2015-11-04 26 views
-1

我對正則表達式相當陌生。我的要求是從包含數字和字符混合的字符串中提取數字。我已經嘗試了下面的代碼,但我只能從字符串中獲得第一個數字。如何從字符串中提取數字值與C#中的數字和字符混合?

String serialNumber= "000745 TO 000748,00050-00052" 
Match match = Regex.Match(serialNumber), @"(\d)+", RegexOptions.IgnoreCase); 

if (match.Success) 
{ 
    int a = Convert.ToInt32(match); // This part not sure how to do 
} 

預期的結果是:

000745 
000748 
00050 
00052 
+0

帶有全局標誌的'(\ d +)'應該這樣做 – Tushar

+0

特別是來自重複的這個答案http://stackoverflow.com/a/2221729/477420給出了你正在尋找的確切輸出(顯然只轉換結果數字字符串到整數值將失去前導零,所以很不清楚爲什麼你甚至試過)。 –

回答

1
string strRegex = @"\d+"; 
Regex myRegex = new Regex(strRegex, RegexOptions.None); 
string strTargetString = @"000745 TO 000748,00050-00052"; 

foreach (Match myMatch in myRegex.Matches(strTargetString)) 
{ 
    if (myMatch.Success) 
    { 
    // Add your code here 
    } 

} 

你通過你的比賽需要循環得到所有的比賽。