与查找和替换相乘

cda*_*ted 3 python regex sed

可以使用正则表达式来执行算术运算吗?例如找到文件中的所有数字并将它们乘以标量值.

Aym*_*ieh 8

您可以使用re.sub()回调来实现此目的:

import re

def repl(matchobj):
  i = int(matchobj.group(0))
  return str(i * 2)

print re.sub(r'\d+', repl, '1 a20 300c')
Run Code Online (Sandbox Code Playgroud)

输出:

2 a40 600c
Run Code Online (Sandbox Code Playgroud)

来自文档:

re.sub(pattern,repl,string [,count])

如果repl是一个函数,则会为每个非重叠的模式调用调用它.该函数接受单个匹配对象参数,并返回替换字符串.