Есть ли способ дополнить однозначные числа 0 с помощью регулярных выражений?
Я использую Python.

Примеры:

  • 6 => 06
  • 1 => 01

и т.п.

Вот над чем я работаю: https://regex101.com/r/iG9qC7/1

Я хотел бы, чтобы все имена файлов имели одинаковый формат.

1 ответ1

1

Успех при чтении документов

Это просто использует функцию подстановки регулярных выражений и строковую функцию zfill внутри функции обратного вызова.

import re

a = """Hello 1 of 60
Hello.22.of.60.
Hello 33of60
Hello.44of60.
Hello 1 of 6
Hello.2.of.6.
Hello 3of6
Hello.04of6.""".splitlines()

def F(m):return r' S01E%s'%m.group(1).zfill(2)
print '\n'.join([re.sub(r'\D(\d+).*', F, x, 1)for x in a])

Выход:

Hello S01E01
Hello S01E22
Hello S01E33
Hello S01E44
Hello S01E01
Hello S01E02
Hello S01E03
Hello S01E04

Или, если вы хотите сохранить второе число, небольшая разница:

print '\n'.join([re.sub(r'\D(\d+).*?(\d+).*', lambda m:r' S01E%s of %s'%(m.group(1).zfill(2),m.group(2).zfill(2)), x)for x in a])

Выход:

Hello S01E01 of 60
Hello S01E22 of 60
Hello S01E33 of 60
Hello S01E44 of 60
Hello S01E01 of 06
Hello S01E02 of 06
Hello S01E03 of 06
Hello S01E04 of 06

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .