Я иду через двоичный файл с регулярными выражениями, извлекающими данные, и у меня проблема с регулярным выражением, я не могу отследить.Python Regex не соответствует началу строки?
Это код У меня возникли проблемы с:
z = 0
for char in string:
self.response.out.write('|%s' % char.encode('hex'))
z+=1
if z > 20:
self.response.out.write('<br>')
break
title = []
string = re.sub('^\x72.([^\x7A]+)', lambda match: append_match(match, title), string, 1)
print_info('Title', title)
def append_match(match, collection, replace = ''):
collection.append(match.group(1))
return replace
Это содержание первых 20 символов в строке, когда это работает:
| 72 | 0a | 50 | 79 | 72 | 65 | 20 | 54 | 72 | 6a | 19 | 54 | 72 | 6f | 6c | 6c | 62 | 6c
Он ничего не возвращает, за исключением случаев, когда я удаляю ^, в котором он возвращает «Тролль» (не кавычки), который равен 54726F6C6C. Он должен возвращать все до \ x7a, когда я его читаю.
Что здесь происходит?
Ваш вход строка не начинается с '\ x72' характер - она начинается с трубы. * edit Ничего ... Я думаю, что неверно истолковал ваш пример ввода. –
Да, извините. Было проще рассказать каждому отдельному персонажу. – Joren