У меня есть две функции:
def make_regex_from_hex_sign(hex_sign):
regex_hex_sign = re.compile(hex_sign.decode('hex'))
return regex_hex_sign
def find_regex_pattern_and_return_its_offset(regex_pattern, bytes_array):
if found_regex_pattern in regex_pattern.finditer(bytes_array):
return found_regex_pattern.start()
else:
return 0
и я использую их так:
pattern = make_regex_from_hex_sign("634351535F")
file = open('somefile.bin', 'rb')
allbytes = file.read()
offset = find_regex_pattern_and_return_its_offset(pattern, allbytes)
Питон бросает: NameError: global name 'found_regex_pattern' is not defined
Если я заменим if
на for
в if found_regex_pattern in regex_pattern.finditer(bytes_array)
, это сработает, но затем мне нужно break
в конце, чтобы он не смог выполнить поиск после первой итерации найденного шаблона. Есть ли более элегантный способ решить эту проблему без использования for
и break
?