好的,让我解释一下目前的情况:
我从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
任何人都可以帮我解决这个问题吗?
答案 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;