Python 如何在字符串中的每个数字处插入文本

Python 如何在字符串中的每个数字处插入文本,python,string,string-formatting,Python,String,String Formatting,我有一个类似“C5B2GH5”的字符串列表,我想为每个数字添加一个“{\sub[num]}”。我想不出任何办法把数字保留在字符串中。所以它会从'G2H3'变成'G{\sub 2}H{\sub 3}'。有没有相对简单的方法可以做到这一点?我最大的问题是将数字保留在字符串中。可能是这样吗?: import re print re.sub(r'(\d+)','{\sub \\1}','C5B2GH5') #output: C{\sub 5}B{\sub 2}GH{\sub 5} 你对“num”的定义

我有一个类似“C5B2GH5”的字符串列表,我想为每个数字添加一个“{\sub[num]}”。我想不出任何办法把数字保留在字符串中。所以它会从'G2H3'变成'G{\sub 2}H{\sub 3}'。有没有相对简单的方法可以做到这一点?我最大的问题是将数字保留在字符串中。

可能是这样吗?:

import re
print re.sub(r'(\d+)','{\sub \\1}','C5B2GH5')
#output: C{\sub 5}B{\sub 2}GH{\sub 5}

你对“num”的定义是什么?如果num是单个字符、多个字符和以文本形式写入的浮点数,那么答案就大不相同了。一般来说,
isdigit(c)
将是您的朋友[num]只是一个数字的占位符。现在我想起来了,我想能够识别任意长度的数字序列。类似于'C145'的东西应该变成'C{\sub 145}。哇,这很好用。介意解释一下它是如何工作的吗?正则表达式
\d+
模式查找任何数字(一个或多个),该方法将替换为刚刚匹配的数字(即
\1
)。了解这里的常规表达:。以及python模块: