我想在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);
然后显示错误
输入字符串的格式不正确。
是否可以将匹配的正则表达式转换为string
或int
?如果可能请提供帮助。提前致谢。
答案 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));