python - 试图以 '\x0a' 格式查找不类似于十六进制的字符
问题描述
我正在解析一个包含文件幻数但格式不一致的字符串。一些模式采用十六进制格式,格式为 '\x0a'(字符串包含转义字符,因此我显然需要搜索两个 \'s),其他模式是直接 ASCII 字符,其余模式介于两者之间。
我希望制作一个正则表达式来查找字符串中还不是十六进制的字符。我尝试使用反转标志搜索以下十六进制值。
(?!\\\\x[0-9 a-f]{2})
这没有按预期工作,因为它在完全匹配后看到下一个字符中的 x 并与之匹配。
>>> test = "\\x50K\\x03\\x04"
>>> re.search("(?!\\\\x[0-9 a-f]{2})" test)
<re.Match object; span(1, 1), match=''>
如果没有得到积极的结果并自己倒置它们,我不知道如何进行。
谢谢!
解决方案
你可以用这样的东西替换十六进制值:re.sub(r'\\x[0-9 a-f]{2}','', your_line)
并使用剩下的——非十六进制字符
推荐阅读
- python - 总结一列单词对并检查频率?
- javascript - VS Typescript 找不到本地文件夹
- java - 如何在实例化变量时遍历列表并将值用作标签或分配的名称?
- git - Github尝试上传文件并获取一系列错误
- spring - 在 IBM MQ 中按计划交付消息 - 提前多长时间?
- php - 正则表达式匹配 next 是空格或字符串结尾
- localhost - 自签名根证书仍然无效
- android-studio - 如何将数据从 Raspberry Pi Python 脚本发送到 Android 应用程序
- faster-rcnn - 是否可以在更快的 R-CNN 中使用我自己的 CNN 模型?
- python - 寻找K-mean距离