使用正则表达式模式匹配查找字符串并操作它,然后返回它,这个可能吗?
例如:
mazda mazda6 mazda 6 mazda3 mazda2
我希望用'6'
,'3'
,'2'
替换'mazda6'
,'mazda3'
,'mazda2'
。我可以使用正则表达式(mazda\d)
轻松找到它们,但我不知道如何用匹配模式的修改版本(即\d应该保留)替换它们。
期望输出:
mazda 6 mazda 6 3 2
str = "mazda mazda6 mazda 6 mazda3 mazda2"
result = re.sub(r'\bmazda(\d+)', r'\1', str)
输出:
>>> print result
'mazda 6 mazda 6 3 2'
您可以使用前瞻断言来要求后面跟着一个数字,而不实际匹配它:
str = "mazda mazda6 mazda 6 mazda3 mazda2"
re.sub(r'mazda(?=\d+)', r'', str)