我有一个这样的字符串:
s = k0+k1+k1k2+k2k3+1+12
我想转换它,这样每个数字都跟在一个字母(k
这里)后面用方括号括起来:
k[0]+k[1]+k[1]k[2]+k[2]k[3]+1+12
这样做的好方法是什么?
我尝试了什么:使用replace()
功能4次(但它不能处理后面没有字母的数字)。
答案 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)