在进行一些处理之后找到正则表达式并替换

时间:2013-05-29 18:44:05

标签: python regex

我知道在Python中你可以找到并替换为

 re.sub('(b)','\\1BB','abc')

但是,如果你想要更多的处理,你会如何进行,就像你得到一个数字的数字,并添加x?

使用函数并将原始字符串切换并粘贴到新字符串中时,我没有问题,正则表达式匹配模式已更改,但最简单的方法是什么?

1 个答案:

答案 0 :(得分:2)

您可以在re.sub中调用函数而不是简单的替换字符串:

>>> re.sub('(\d+)',
...     lambda x: ' {}+3={} '.format(x.group(1),int(x.group(1))+3),
...     'a12c')
'a 12+3=15 c'

或者,

def r(m):
    return ' {}+{}={} '.format(m.group(1),m.group(2),
                           int(m.group(1))+int(m.group(2)))

>>> print re.sub('(\d)(\d)',r,'a12c')
'a 1+2=3 c'