Python RegEx模式似乎忽略了模式的一部分

时间:2016-02-09 09:42:29

标签: python regex python-3.x

这是我昨天提出的一些问题,因为我们目前正在寻找其他方法来解决我们正在尝试做的事情。我们打开一个.bin文件,找到一个特定的模式,因为它包含我们所追求的数据。因此,我们正在尝试查看正则表达式匹配以获得此功能,到目前为止它还处于测试阶段,我们有以下内容:

import re,sys
f = open ('file.txt','w')       
file = open('file.bin', 'rb')
data = file.read()
messages=re.search(b'\x03\x07\x91\x44(.*)\xFF\xFF',data)
f.write(repr(messages))

这是基本的,只是打开一个要写的文件,打开我们之后的文件然后应该搜索字节串'\ x03 \ x07 \ x91 \ x44 anything \ xFF \ xFF'目前仅在1场比赛后但是一旦它正在工作,它将转移到findall,并将查找结果报告给文件。但它匹配以下字符串:

匹配= B'\ X03 \ X07 \ x91D \ X97 \ x85x \ X89 \ X97 \ X04 \ X0C \ x91DW \ X93>

它似乎完全忽略了\ x44并收集了91之后的任何内容,有没有人知道如何解决这个问题,还是我错过了一些基本的东西?

2 个答案:

答案 0 :(得分:0)

它确实找到了你想要的东西。匹配的字符“D”的ascii值为0x44

答案 1 :(得分:0)

你不应该为正则表达式使用双反斜杠吗?

\\x03\\x07\\x91\\x44(.*)\\xFF\\xFF

这有帮助吗?

请参阅:https://regex101.com/r/pF8gG1/1