Я использую функцию split() для шестнадцатеричной строки в Python. Эта строка содержит маркер (0xffffffffffffffff), который я хочу разделить. После этого маркера есть шестнадцатеричные данные. В шестнадцатеричной строке может быть несколько «маркеров».Несколько совпадений по сплит-строке
Теперь я обнаружил, что проблема связана с тем, что моя первая строка данных заканчивается на «ff», а следующий маркер непосредственно следует за ней (что происходит не часто, но это происходит).
Есть ли способ разделить «правосвязь»?
0a 0b 0c 0d 0e 0f ff ff ff ff ff ff ff ff 0a 0b 0c ...
В этом случае я хочу строку расщепляется следующим образом:
0a 0b 0c 0d 0e 0f ->ff ff ff ff ff ff ff ff<- 0a 0b 0c ...
Но расщепляется так:
0a 0b 0c 0d 0e 0 ->f ff ff ff ff ff ff ff f-> f 0a 0b 0c ...
Любая идея, как я могу добиться этого в Python?
Текущий код очень прост:
a = "0a0b0c0d0e0fffffffffffffffff0a0b0c"
list = a.split("ffffffffffffffff")
[0]: 0a0b0c0d0e0
[1]: f0a0b0c
Но это должно быть:
[0]: 0a0b0c0d0e0f
[1]: 0a0b0c
Я не могу сказать без кода, но 'rsplit()' приходит на ум. – TigerhawkT3
@ TigerhawkT3 имеет хороший намек ;-), что заняло у меня некоторое время, было: пробелы, разделяющие 2-значные пакеты, вводятся только в этом вопросительном тексте, но в реальном вводе данные ** не ** разделяются пробелами , правильно? – Dilettant
@ Dilettant Это правильно. Пробелы просто применяются для лучшей читаемости. «Настоящая строка» не имеет пробелов. – iLLogical