2015-11-04 4 views
-1

Я совершенно новый для регулярного выражения. Мое требование - извлечь номер из строки, который включает в себя сочетание чисел и символов. Я пробовал ниже коды, но я могу получить только первое число из строки.Как извлечь числовые значения из строки mix с номерами и символами в 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 
    } 

} 

Вы должны перебрать ваши матчи, чтобы получить все матчи.

Смежные вопросы