我知道在 Python 中你可以找到并替换为
re.sub('(b)','\\1BB','abc')
但是,如果你想要更多的处理,你将如何进行,比如你得到一个数字并添加 x 呢?
使用函数并将原始字符串切片并粘贴到新字符串中没有问题,正则表达式匹配模式已更改,但是最简单的方法是什么?
您可以在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'