【发布时间】:2012-10-04 12:41:39
【问题描述】:
我已经编写了表达式,但是每当我运行代码时,我都会得到整个字符串和一大堆空值:
Regex regex = new Regex(@"y=\([0-9]\)\([0-9]\)(\s|)\+(\s+|)[0-9]");
Match match = regex.Match("y=(4)(5)+6");
for (int i = 0; i < match.Length; i++)
{
MessageBox.Show(i+"---"+match.Groups[i].Value);
}
预期输出:4、5、6(在不同的 MessageBox 中
实际输出:y=(4)(5)+6
它会检查输入的字符串是否正确,但一旦正确,我就无法获得具体的值(4、5 和 6)。我该怎么做才能获得该代码?这可能是非常简单的事情,但我已经尝试查看 MSDN match.NextMatch 文章,但这似乎也没有帮助。
谢谢!
【问题讨论】:
-
我不太明白这个问题 - 您是否正在寻找正则表达式来匹配格式不正确的字符串?
-
正则表达式匹配字符串很好 - 当所有变量都被填充时,它返回 true(或 match.Success)。但是,获得每个单独的值是我所追求的。
-
您是否尝试过检查 .Captures ? msdn.microsoft.com/en-us/library/twcw2f1c.aspx