正则表达式到字符串或int转换

时间:2011-12-16 13:44:07

标签: c# .net regex string

我想在string或int中转换匹配的表达式。但在.NET Framework中,我找不到任何方法来执行此操作。我试过这个

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);

第一个写字符打印58,第二个WriteLine()调用打印出的任何内容都不是s1=""

如果我像这样使用int转换

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

然后显示错误

  

输入字符串的格式不正确。

是否可以将匹配的正则表达式转换为stringint?如果可能请提供帮助。提前致谢。

2 个答案:

答案 0 :(得分:3)

你有一个错字。这样:

"totalemail]"

应该是这样的:

"totalemail"

答案 1 :(得分: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));