C# 正则表达式未按预期工作
好的,让我解释一下目前的情况: 我从COM1中获得了一些字符串,我对其进行了筛选,以仅显示所需的信息,因此我只有如下字符串: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 但
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(行,”(?)?