Я анализирую строку, содержащую магические числа файлов, но форматирование не соответствует. Некоторые шаблоны представлены в шестнадцатеричном формате с форматом '\ x0a' (где строка содержит экранированный символ, поэтому мне, очевидно, нужно искать оба символа), другие являются прямыми символами ASCII, а остальные находятся где-то посередине.
Я надеялся создать регулярное выражение, чтобы найти символы в строке, которые уже не являются шестнадцатеричными. Я попытался выполнить следующий поиск значений Hex с флагом инверсии.
(?!\\\\x[0-9 a-f]{2})
Это не сработало, как задумано, так как он видит х в следующем символе после полного совпадения и соответствует этому.
>>> test = "\\x50K\\x03\\x04"
>>> re.search("(?!\\\\x[0-9 a-f]{2})" test)
<re.Match object; span(1, 1), match=''>
Не получив положительных результатов и не перевернув их самостоятельно, я не уверен, как поступить.
Спасибо!