2011-12-16 2 views
2

Я хочу преобразовать согласованное выражение в строку или int. Но в .NET Framework я не нашел никакого способа сделать это. Я попытался этоРегулярное выражение для преобразования строки или int

s=+OK 58 exists; 
var m = Regex.Match(s, @"\+OK (?<totalemail>[0-9]+)"); 
     Console.WriteLine("Total Email: " + m.Groups["totalemail"].Value); 
     string s1= Convert.ToString(m.Groups["totalemail"].Value); 
     Console.WriteLine(s1); 

Это первый WriteLine печатает 58 и второй печатает WriteLine() вызова ничего, что означает s1="".

Если я использую int преобразование как этот

int s=Convert.ToInt32(m.Groups["totalemail"].Value); 

то это показывает ошибку

Строка ввода не в правильном формате.

Можно ли преобразовать согласованное регулярное выражение в string или int? если возможно, пожалуйста, помогите. Заранее спасибо.

ответ

3

У вас есть опечатка. Это:

"totalemail]" 

должен быть таким:

"totalemail" 
+0

спасибо.имя написана ошибка. Однако это не проблема. и проблема решена. –

+0

благодарит за ответ –

+1

@MdKamruzzamanPallob Вы говорите: «Моя проблема решена». Отправьте решение в качестве ответа. Это может помочь другим людям в будущем. –

1

я решил. Решение будет таким:

s=+OK 58 exists; 

    var m = Regex.Match(s, @"\+OK (?<totalemail>[0-9]+)"); 
     Console.WriteLine("Total Email: " + m.Groups["totalemail"].Value); 
     int index = m.Groups["totalemail"].Index; 
     int length = m.Groups["totalemail"].Length; 
     Console.WriteLine(index + " " + length); 
     string str; 
     Console.WriteLine(str=m.ToString().Substring(index,length)); 
     int i; 
     Console.WriteLine(i = Convert.ToInt32(str)); 
Смежные вопросы