我有


  var = bRes [8] bRes [9] bRes [10] bRes [11] bRes [12]




variable = re.sub(r'[0-9]+', r'[0\g<0>]', vari)


我正进入(状态


  变量= bRes [08] bRes [09] bRes [010] bRes [011] bRes [012]


但我想有

变量= bRes [08] bRes [09] bRes [10] bRes [11] bRes [12]

有任何建议吗?

最佳答案

您可以使用

import re
vari = 'bRes[8] bRes[9] bRes[10] bRes[11] bRes[12]'
print(re.sub(r'\[([0-9]+)]', lambda x: "[{}]".format(x.group(1).zfill(2)), vari))
# => bRes[08] bRes[09] bRes[10] bRes[11] bRes[12]


请参见Python demo

\[([0-9]+)]模式匹配[,然后将一个或多个数字捕获到组1中,然后匹配],该匹配项以x的形式传递给lambda表达式,并且存储在组1中的数字子字符串-用.zfill(2)处理以将零填充数字。

10-06 05:20