正则表达式没有按预期工作

时间:2014-11-13 09:15:04

标签: c# regex numbers

好的,让我解释一下目前的情况:

我从COM1得到一些字符串,我过滤了这个只显示所需的信息,因此我只有这样的字符串:

NTF,IDAS,RXSTAT,IND,01-0100,01-0131,+,-63,81

现在的问题是,在这个例子中,我需要得到数字:131和只有那个数字,

我试图通过Regex实现这一目标,但没有成功。

我将此作为我的正则表达式:

Regex.Match(line, ",01-0100,01-0([0-9]{3})").Value.ToString()

并希望能够将

归还给我

131

但它会返回:

,01-0100,01-0131

任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

您使用的是错误的群组索引。组0是整个匹配,组1是第一组的值。

Regex.Match(line, ",01-0100,01-0([0-9]{3})").Groups[1].Value.ToString()

您也可以为您的小组命名:

Regex.Match(line, ",01-0100,01-0(?<mygroup>[0-9]{3})").Groups["mygroup"].Value.ToString()

哦,作为一个群组的值总是一个字符串:

Regex.Match(line, ",01-0100,01-0(?<mygroup>[0-9]{3})").Groups["mygroup"].Value;