Я написал скрипт для стандартизации набора значений, извлеченных из банка данных, используя (в основном) r.sub.Я с трудом включаю zfill, чтобы заполнить числовые значения 5 цифрами.
Ввод
FOO5864BAR654FOOBAR
Требуемый вывод
FOO_05864-BAR-00654_FOOBAR
Использование re.sub У меня до сих пор
FOO_5864-BAR-654_FOOBAR
Один вариант был сделать повторно.sub с захватом групп для каждого возможного формата [т.е. ниже], который работает, но я не думаю, что это правильный способ сделать это.
(\d) sub 0000\1
(\d\d) sub 000\1
(\d\d\d) sub 00\1
(\d\d\d\d) sub 0\1