一个C# 正则表达式的问题
目前做串口开发 需要发送 十六进制 数据包
问题如下
MatchCollection 集合 = Regex.Matches("17016112233445566","正则表达式");
List<byte> 缓存 = new List<byte>
foreach (Match 字节 in 集合)
{
缓存.Add(byte.Parse(m.Value, NumberStyles.HexNumber))
}
我要 把1701611223344....字符串 发送给从机 第一字节AA 第二字节16 11 22 ... 这样的话 正则表达式如何写呢?
忘论坛兄弟指点小弟 急切。。 正则表达式 串口发送 MatchCollection Regex.Matches c#
[解决办法]
这用什么正则啊,都知道截取几位,就直接substring取出来,然后转为16禁制呗
[解决办法]
List<string> 缓存 = Regex.Split("17016112233445566","(?<=\\G\\d{2})").ToList();
[解决办法]
string str = "17016112233445566";
List<string> List = new List<string>();
List.Add(str.Substring(0, 3));
var newList = System.Text.RegularExpressions.Regex.Split(str.Substring(3), "(?<=\\G.{2})(?!$)");
List.AddRange(newList.ToList());
List<string> resultList = new List<string>();
foreach (var s in List)
{
int num = Convert.ToInt32(s);
resultList.Add(Convert.ToString(num, 16));
}
[解决办法]
string str = "17016112233445566";
var ary = Regex.Matches(str, @"(?<=\d{3}(\d{2})*)\d{2}");
foreach (Match m in ary)
{
Console.WriteLine(m.Value);
}