从字符串中过滤开始和结束字符

时间:2013-03-11 10:51:53

标签: c# regex visual-studio filter

每次打开串口时都会收到以下字符串,此字符串用于检查连接设备运行的BIOS版本和固件版本。

字符串:

v03400216000000001FC5H240108206B-RAMBOX=[03]

现在,检查Bios版本和固件版本的唯一重要指标如下:

03400216

注意:bytearraybyte[]转换为string并填充:

v03400216000000001FC5H240108206B-RAMBOX=[03]

我尝试使用以下代码实现此目的:

string versiontext = bytearray.Trim();
bytearray = versiontext.Remove(0, 2);
versiontext = bytearray.Remove(9, bytearray.Length);
bytearray = versiontext;

但这没有成功,导致以下异常:

Index and count must refer to a location within the string.

我应该使用Regex而不是.Remove吗?

编辑:

@lazyberezovsky帮助我,我忘记了.Substring()

我使用以下代码实现了string result

if (bytearray.Contains("RAMBOX"))
{
       string Versionstring = bytearray.Substring(1, 8);
       bytearray = Versionstring;
}

1 个答案:

答案 0 :(得分:6)

简单子字符串怎么样?

var input = "v03400216000000001FC5H240108206B-RAMBOX=[03]";
var version = input.Substring(1, 8);