Python:十六进制正则表达式问题

标签 python regex regex-negation

我想解析一个叫做 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 '

我如何使用正则表达式执行此操作?

最佳答案

你可以试试 re.findall() :

>>> a='05 03 04 01 0A  The Header 03 08 0B BD AF  The PAYLOAD 0D 0A  The Footer'
>>> re.findall(r"\b[0-9A-F]{2}\b", a)
['05', '03', '04', '01', '0A', '03', '08', '0B', 'BD', 'AF', '0D', '0A']

正则表达式中的\b匹配一个“词边界”。

当然,如果串行监视器插入类似 THIS BE THE HEADER 的内容,您的输入就会有歧义。

关于Python:十六进制正则表达式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3395656/

相关文章:

mysql - 正则表达式查找字符串中的某个字符

javascript - 仅从域+TLD 组合中分割域

python - 从 Pandas 系列的索引列表中删除字符串条目

Javascript正则表达式在文件末尾提取计数

.net - 正则表达式挑选艺术家姓名和歌曲标题,存在惰性匹配问题

regex - 使用正则表达式从定界字符串中获取值

regex - 如何忽略正则表达式捕获中的前导零?

Python:在拟合模型上绘制残差

python - 如何在 Pygame 中更改图像的颜色而不改变其透明度?

Python 多行正则表达式替换