有没有办法用正则表达式用 0 填充个位数?
我正在使用 Python。
例子:
- 6 => 06
- 1 => 01
ETC。
以下是我正在做的工作:https://regex101.com/r/iG9qC7/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