我想解析一个名为Docklight的串行监视程序的输出(我强烈推荐它)
它输出“十六进制”字符串:或一个序列(两个大写十六进制数字后跟一个空格)。对应的正则表达式是:([0-9A-F]{2} )+
,例如:'05 03 DA 4B 3F '
当程序检测到特定的字符序列时,它会将注释放在“十六进制”字符串中。例如:
'05 03 04 01 0A The Header 03 08 0B BD AF The PAYLOAD 0D 0A The Footer'
注释是以下格式的字符串' .+ '
(前面是空格,后面是空格的字符序列)
我想去掉这些评论。例如,上面筛选的“十六进制”字符串将是:
'05 03 04 01 0A 03 08 0B BD AF 0D 0A '
如何使用正则表达式执行此操作?
你可以试试^{} :
正则表达式中的
\b
与“单词边界”匹配。当然,如果串行监视器插入类似
THIS BE THE HEADER
的内容,则您的输入是不明确的。使用正则表达式
如果插入的字符串不包含匹配项,则查找所有十六进制数可能更容易:
否则,可以使用插入的字符串前面有两个空格的事实:
这将使用“向前看”来计算插入的字符串何时结束。它查找由空格包围的十六进制字符串或源字符串的结尾。
相关问题 更多 >
编程相关推荐