我有
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)
处理以将零填充数字。