Я использую RegEx для соответствия сообщений BGP в байтовой строке. Строка примера байт выглядит так:Regex on bytestring в Python 3
b'\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x13\x04\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x13\x04'
\ XFF (8 раз) используются в качестве «фломастера», чтобы начать одно сообщение. Теперь я хочу разбить сообщения для анализа каждого из них.
messages = re.split(b'\xff{8}', payload)
Соответствие прекрасно работает, но в моем массиве сообщений я получил несколько полей.
b''
b''
b'001304'
b''
b''
b'001304'
Может кто-нибудь объяснить это поведение? Почему между каждым (правильным расщепленным) сообщением есть два пустых поля. В больших байтовых строках иногда между каждыми сообщениями имеется только одно пустое поле.
Возможно 'messages = re.split (b '(?: \ Xff) {8}', полезная нагрузка)'? –