2015-11-04 70 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 
    } 

} 

你通过你的比赛需要循环得到所有的比赛。