用python正则表达式将子字符串替换为从旧字符串中计算出的新字符串

时间:2019-02-01 18:12:16

标签: python regex python-3.x substring substitution

是否可以使用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

1 个答案:

答案 0 :(得分:3)

是的,可以使用re.sub。提供一个可调用对象设置的匹配对象转换为一个int,乘它,并转换回字符串。

>>> s = "userX40"
>>> re.sub(r"\d+", lambda x: str(2*int(x.group())), s)
'userX80'