Используйте str.split()
method с пределом (второй аргумент):
input_string.split('|', 5)[-1]
Это разбивает строку в 5 раз, и принимает последний элемент, который имеет оставшиеся |
Charaters цельным.
Если есть меньше чем 5 |
символов в строке, вы все равно получите последний элемент из раскола, потому что [-1]
рассчитывает с конца. Это означает, что выражение продолжает работать, даже если есть нулевой символов трубы в расколе.
Демо:
>>> input_string = '1|2||||auc|0|1||0|||76u|'
>>> input_string.split('|', 5)
['1', '2', '', '', '', 'auc|0|1||0|||76u|']
>>> input_string.split('|', 5)[-1]
'auc|0|1||0|||76u|'
и со ссылкой на документацию:
If maxsplit дается самое большее maxsplit расколы сделаны (таким образом, список будет иметь самое maxsplit+1
элементы).
Ницца и чистый раствор. Если я могу добавить некоторые надежные общие сведения для записи: если у вас есть веские основания ожидать, что у хорошей части строк будет меньше пяти трубок, вы можете сначала разбить и проверить длину результата, а не ловить ошибку , – fnl