如何仅在Python中为特定数字字符重新格式化字母数字字符串?

时间:2019-02-07 12:22:30

标签: python regex

我有

  

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]

有任何建议吗?

1 个答案:

答案 0 :(得分:1)

您可以使用

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表达式,然后使用.zfill(2)对存储在第1组中的数字子字符串进行后处理,以将零填充单个数字。