Python在正则表达式中减一

时间:2018-08-27 19:42:49

标签: python python-3.x

我正在使用一个脚本,该脚本使用zfill向Python 3中的正则表达式匹配的数字添加前导零。

这是我的代码:

#!/usr/bin/env python

import re

string = "7-8"
pattern = re.compile("^(\d+)-(\d+)$")
replacement = "-{}-{}-".format(
    "\\1".zfill(2),
    "\\2".zfill(3)
)
result = re.sub(pattern, replacement, string)
print(result)

我期望的输出是将第一个数字的宽度填充为两个字符,将第二个数字的宽度填充为三个字符。例如:

-07-008-

相反,我得到:

-7-08-

为什么零比预期的少零?

1 个答案:

答案 0 :(得分:2)

您正在填充用于后向引用的常量,该常量已经是两个字符(partial和一个int),第一个字符没有多余的零,第二个字符只有一个空格。

您可以改为将函数作为替换传递给\并在其中进行 zfilling

re.sub

zfilling 现在是在替换时完成的,而不是像代码中那样。