要求: 字符串 !AIVDM,1,1,,A,19NS>F002w8iJ8pAN1bTt3pF087B,0*59$Check
用正则表达式找出开头为 "!"或"$" 结尾倒数第3个字符为"*" 并且最后两位是一16进制数或最后为Check上面那个字符串可以分成两个
!AIVDM,1,1,,A,19NS>F002w8iJ8pAN1bTt3pF087B,0*59
$Check
用正则表达式找出开头为 "!"或"$" 结尾倒数第3个字符为"*" 并且最后两位是一16进制数或最后为Check上面那个字符串可以分成两个
!AIVDM,1,1,,A,19NS>F002w8iJ8pAN1bTt3pF087B,0*59
$Check
(?i)!.*?\*[0-9A-F]{2}(?=\$)|\$.*check
可以得到你给的字符串想要的东西...但最好再明确你的需求...
void Main()
{
string s=@" !AIVDM,1,1,,A,19NS>F002w8iJ8pAN1bTt3pF087B,0*59$Check"; foreach(Match m in Regex.Matches(s,@"[!$][^!$]*(?:[0-9A-F]{2}|Check)"))
{
Console.WriteLine(m.Value);
}
/*
!AIVDM,1,1,,A,19NS>F002w8iJ8pAN1bTt3pF087B,0*59
$Check
*/
}
!AIVDM,1,1,,A,19NS>F002w8iJ8pAN1bTt3pF087B,0*59$Check起始字符为: '!'或'$' 结尾为'Check'或 '0*'+十六进制的数如上面的这个就可以分解为
!AIVDM,1,1,,A,19NS>F002w8iJ8pAN1bTt3pF087B,0*59
$Check
foreach(Match m in mc)
{
m.Value;//你要的
}[/code]
foreach(Match m in mc)
{
m.Value;//你要的
}