Python正则表达式模式似乎忽略了部分模式

Python正则表达式模式似乎忽略了部分模式,python,regex,python-3.x,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'\x0

这是我昨天问的问题的一点后续,因为我们目前正在寻找其他方法来解决我们正在尝试做的事情。我们正在打开一个.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,并将搜索结果报告给文件。但它与以下字符串匹配:

match=b'\x03\x07\x91D\x97\x85x\x89\x97\x04\x0c\x91DW\x93>


它似乎完全忽略了\x44,并在91之后收集了任何东西,有人知道如何解决这个问题吗?或者我缺少了一些基本的东西吗?

它确实找到了您想要的东西。匹配的字符“D”的ascii值为0x44,您不应该对正则表达式使用双反斜杠吗

\\x03\\x07\\x91\\x44(.*)\\xFF\\xFF
这有用吗


请参阅:

我不是在寻找x44的ASCII值我在寻找字节0x44,我认为将字符串指定为字节应该返回字节而不是匹配的ASCII?而且它仍然不会以0xFF 0xFF结尾?在ASCII文件中,每个字符都是一个字节,因此它与该字节匹配。虽然文件是一个.bin文件,但是里面的数据只是十六进制值。我们希望遍历该文件,获取我们感兴趣的十六进制值,然后将我们需要的数据转换为ascii。里面的十六进制是7bit PDU十六进制,有很多填充(因此只是查找我们要查找的分组)。由于它是python字符串,这可能会转换为4个反斜杠:
\\\\x03\\\\x07\\\\x91\\\\\x44(.*\\\\\xFF\\\\\xFF
谢谢,我们刚才也看到了这一点(并使用了正则表达式检查器)它仍然返回“match=b”\x03\x07\x91D\x97\x85x\x89\x97\x04\x0c\x91DW\x93>,作为匹配项。当使用正则表达式测试仪进行检查时,这不应该发生在4个反斜杠上?对于4个反斜杠,它报告没有找到匹配项。但是我们知道数据在这个文件中。对不起,我只能想到这些。没有更多的想法。