用括号内的Python替换字符串中的数字

时间:2017-01-21 16:01:46

标签: python string replace

我有一个这样的字符串:

s = k0+k1+k1k2+k2k3+1+12

我想转换它,这样每个数字都跟在一个字母(k这里)后面用方括号括起来:

k[0]+k[1]+k[1]k[2]+k[2]k[3]+1+12

这样做的好方法是什么?

我尝试了什么:使用replace()功能4次(但它不能处理后面没有字母的数字)。

2 个答案:

答案 0 :(得分:5)

以下是使用带有正则表达式def application的{​​{1}}模块的一个选项,它匹配单个字母后跟数字和re,您可以使用一对括号括起匹配的数字替换:

([a-zA-Z])(\d+)

要用大写替换匹配的字母,您可以在替换位置使用lambda将它们转换为大写:

sub

答案 1 :(得分:2)

这个怎么样?

s = re.sub('([a-z]+)([0-9]+)', r"\1" + '[' + r"\2" + ']', s)