Используя регулярное выражение, как я могу разбить строку и сохранить ее разделители в возвращаемых результатах? Я пытаюсь разбить строку, содержащую числа и строки, на набор букв, за которыми следует любое числовое значение, включая «.»однако он не работает должным образом.
Ниже приведена моя тестовая строка, я использую python 2.7, и он не выдает ожидаемого идентификатора.
s = 'M160.394,83.962L121.5,52L86.31,73.378L58,104.917L89.75,C136.667L158.542,136.667L185,110.208L160.394,83.962Z'
parts = filter(None, re.split('([MLHVCSQTAZ][^MLHVCSQTAZ]+)', s, re.IGNORECASE))
print len(parts), parts
>>> 3 ['M160.394,83.962', 'L121.5,52', 'L86.31,73.378L58,104.917L89.75,C136.667L158.542,136.667L185,110.208L160.394,83.962Z']
Я ожидаю, что это даст мне это
>>> 10 ['M160.394,83.962', 'L121.5,52', 'L86.31,73.378', 'L58,104.917', 'L89.75,', 'C136.667', 'L158.542,136.667', 'L185,110.208', 'L160.394,83.962', 'Z']
Должен быть выведен список строк, каждая строка которых начинается с буквы, найденной в исходном регулярном выражении MLHVCSQTAZ