是否可以在Regex中对变量值进行数学运算?

时间:2013-11-11 13:22:52

标签: regex search

我想知道可以在RegEx变量值上做一些简单的Math。 E.G:

我正在寻找所有两位数的数字是一个文本文件,并希望将它们乘以10。 简单的正则表达式是否能够执行此操作,还是需要使用更复杂的脚本?

谢谢!

1 个答案:

答案 0 :(得分:2)

将两位数字相乘就像在数字末尾附加0一样。因此,可以使用任何支持替换和捕获组的正则表达式来完成。

例如,这是Python代码:

>>> re.sub(r'\b(\d{2})\b', r'\g<1>0', 'There are 10 apples.')
'There are 100 apples.'

但你想要的是乘以任意数字,那么你需要支持某种回调/评估的正则表达式引擎。

>>> re.sub(r'\b(\d{2})\b', lambda m: str(int(m.group(1)) * 5), '10 apples.')
'50 apples.'