我使用以下正则表达式模式在二进制文件中搜索0xDEAD4FAD:
my_pattern = re.compile(b"\xDE\xAD\x4F\xAD")
但是如何推广搜索模式以搜索0xDEAD4xxx?似乎无法切入半个字节
正则表达式允许搜索范围.因此,要找到第一个半字节为"4"的字节,请使用:
pattern = re.compile(b"[\x40-\x4F]")
以下测试表明它产生了所需的输出:
>>> for byte in ('\x3f', '\x40', '\x42', '\x4f', '\x50'): print bool(pattern.search(byte)) ... False True True True False
要回答有关搜索0xDEAD4xxx的特定问题,请使用:
my_pattern = re.compile(b"\xDE\xAD[\x40-\x4F].")