Регулярное выражение Python, разделение строки с несколькими разделителямиPython

Программы на Python
Anonymous
Регулярное выражение Python, разделение строки с несколькими разделителями

Сообщение Anonymous »

Я знаю, что на этот вопрос уже дан ответ, но мой вариант использования немного другой. Я пытаюсь настроить шаблон регулярного выражения для разделения нескольких строк на список.
Входные строки:

Код: Выделить всё

1. "ABC-QWERT01"
2. "ABC-QWERT01DV"
3. "ABCQWER01"
Критерии строки
ABC - QWERT 01 DV
1 2 3 4 5
  • Строка всегда начинается с трех символов.
  • Дефис необязателен.
  • Тогда будет от 3 до 10 символов.
  • Дополненные слева цифры от 0 до 99
  • суффикс состоит из 2 символов и является необязательным
Ожидаемый результат

Код: Выделить всё

1. ['ABC','-','QWERT','01']
1. ['ABC','-','QWERT','01', 'DV']
1. ['ABC','QWER','01','DV']
Я пробовал использовать следующие шаблоны разными способами, но чего-то не хватает. Я думал: начинать с начала строки, разбивать после первых трех символов или тире, а затем разбивать по появлению двух десятичных знаков.
Шаблон 1: r"([ -? , \d{2}])+"
Это работает, но не разбивает строку на первые три символа, если тире отсутствует.
Шаблон 2: r"([^[a-z]{3}, -?, \d{2}])+"
Это не соответствует шаблону, ничего не разбивается
Шаблон 3: r"([^[a-z]{3}|-?, \d{2}])+"
Это не соответствует шаблону , ничего не делится
Есть какие-нибудь советы или предложения?

Подробнее здесь: https://stackoverflow.com/questions/786 ... delimeters

Вернуться в «Python»