填充带前导零的数字已被回答here。但在我的情况下,我有一个字符串后跟数字。我想在字符串后添加前导零,但在数字之前,将总长度保持为4.例如:
A1 -> A001
A12 -> A012
A123 -> A123
我有以下代码可以获得我想要的内容,但有没有更简单的方法来执行此操作而不使用re将字符串拆分为文本和数字?
import re
mystr = 'A4'
elements = re.match(r"([a-z]+)([0-9]+)", mystr, re.I)
first, second = elements.groups()
print(first + '{:0>3}'.format(second))
output = A004
答案 0 :(得分:0)
您可以使用以下内容来避免使用re
:
def pad_center(s):
zeros = '0' * (4 - len(s))
first, *the_rest = list(s)
return first + zeros + ''.join(the_rest)
print(pad_center('A1'))
print(pad_center('A12'))
print(pad_center('A123'))
或者,如果您想使用format()
,可以试试这个:
def pad_center(s):
zeros = '0' * (4 - len(s))
first, *the_rest = list(s)
return '{}{}{}'.format(first, zeros, ''.join(the_rest))
但是,我不知道有任何方法可以在没有事先处理的情况下使用format string syntax向字符串的中心添加填充。