是否可以使用Python正则表达式将子字符串替换为使用原始子字符串“计算”的新子字符串?
让我举个例子:
假设我有子字符串userX40
,我想获得子字符串40
,转换为int
,乘以2并将其放回原始字符串中:结果将是user80
。
我可以在不同的段落中这样做,例如:
import re
in_str = "userX40"
original_num = int(re.search("\d+", in_str).group())
out_str = re.search("(.*)[^\d]", lll).group() + str(original_num*2)
是否有一种方法可以在一个命令中使用re.sub
?
答案 0 :(得分:3)
是的,可以使用re.sub
。提供一个可调用对象设置的匹配对象转换为一个int,乘它,并转换回字符串。
>>> s = "userX40"
>>> re.sub(r"\d+", lambda x: str(2*int(x.group())), s)
'userX80'