Я пытаюсь выполнить поиск двоичного файла для ряда шестнадцатеричных значений, однако я столкнулся с несколькими проблемами, которые я не могу решить. (1) Я не уверен, как искать весь файл и возвращать все совпадения. В настоящее время у меня есть f.seek, если только я думаю, что это может быть, и это не хорошо. (2) Я хотел бы вернуть смещение в десятичном или шестнадцатеричном формате, где может быть совпадение, хотя я получаю 0 каждый раз, поэтому я не уверен, что я сделал не так.Python regex search for hexidecimal bytes
example.bin
AA BB CC DD EE FF AB AC AD AE AF BA BB BC BD BE
BF CA CB CC CD CE CF DA DB DC DD DE DF EA EB EC
код:
# coding: utf-8
import struct
import re
with open("example.bin", "rb") as f:
f.seek(30)
num, = struct.unpack(">H", f.read(2))
hexaPattern = re.compile(r'(0xebec)?')
m = re.search(hexaPattern, hex(num))
if m:
print "found a match:", m.group(1)
print " match offset:", m.start()
Может быть, есть лучший способ сделать это? Заранее спасибо.
насколько большой файл? – Urban48
Файл может иметь размер от 100 КБ до 10 МБ. – DIF