【发布时间】:2013-02-26 12:28:10
【问题描述】:
每次打开串口时都会收到如下字符串,这个字符串用于检查连接的设备运行的是哪个bios版本和固件版本。
字符串:
v03400216000000001FC5H240108206B-RAMBOX=[03]
现在检查 Bios 版本和固件版本的唯一重要字符如下:
03400216
注意:bytearray 是一个 byte[] 转换为一个 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;
}
【问题讨论】:
-
视情况而定,它会总是在初始
v之后是 8 个字符吗?还是会有所不同? -
输入字符串总是这么长,是的,我需要的字符总是字符 1 到 9
标签: c# regex visual-studio filter