2015-09-14 4 views
0

У меня есть шестнадцатеричные строки, разделенные пробелом 'ff'. К сожалению, f может также встречаться внутри строки и, самое главное, в конце строки (она не может произойти в начале). Мне нужно разбить строку таким образом, чтобы:Разделение строк в Python

90500303040fff90500303040fff 

разделяется на:

90500303040f 
90500303040f 

Что строка на основе способ идти об этом? (В настоящее время я делаю это на уровне байтов, но я хотел бы узнать чистую строку путь)

+1

Все ли шестнадцатеричные значения равной длины? –

+0

Если нет, вы можете сделать это, например. 're.split ('ff (!? f)', ...)' – jonrsharpe

ответ

1
>>> [e for e in re.split(r'(.*?f)?ff', '90500303040fff90500303040fff') if e] 
['90500303040f', '90500303040f'] 

Или,

>>> re.sub(r'(f?)ff', r'\1\n', '90500303040ff90500303040fff').splitlines() 
['90500303040', '90500303040f'] 

Или, не регулярное выражение:

>>> '90500303040fff90500303040fff'.replace('fff', 'f\n').replace('ff','\n').splitlines() 
['90500303040f', '90500303040f'] 
Смежные вопросы