1

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

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

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

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

4

1 回答 1

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' 
于 2013-05-29T18:50:33.407 回答