C# 正则表达式未按预期工作

C# 正则表达式未按预期工作,c#,regex,numbers,C#,Regex,Numbers,好的,让我解释一下目前的情况: 我从COM1中获得了一些字符串,我对其进行了筛选,以仅显示所需的信息,因此我只有如下字符串: NTF,IDAS,RXSTAT,IND,01-0100,01-0131,+,-63,81 现在的问题是,在这个例子中,我需要得到数字:131,只有这个数字 我曾试图用Regex实现这一点,但没有成功 我将此作为我的正则表达式: Regex.Match(行,”,01-0100,01-0([0-9]{3})”).Value.ToString() 希望这能给我回报 131 但

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

我从COM1中获得了一些字符串,我对其进行了筛选,以仅显示所需的信息,因此我只有如下字符串:

NTF,IDAS,RXSTAT,IND,01-0100,01-0131,+,-63,81
现在的问题是,在这个例子中,我需要得到数字:131,只有这个数字

我曾试图用Regex实现这一点,但没有成功

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

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

希望这能给我回报

131

但相反,它返回:

,01-0100,01-0131


有人能帮我解决这个问题吗?

您使用了错误的组索引。组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(行,”,01-0100,01-0(?[0-9]{3}).Groups[“mygroup”].Value.ToString()
哦,由于组的值始终是字符串:

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

打印组索引1而不是索引0。格式总是固定的吗?还是简单地说,
Regex.Match(行,”(?)?