是否可以使用正则表达式模式匹配找到一个字符串,对其进行操作并返回它?
例如:
mazda mazda6 mazda 6 mazda3 mazda2
Run Code Online (Sandbox Code Playgroud)
我希望将'mazda6','mazda3'替换'mazda2'为'6', '3'。'2'我可以使用 regex 轻松找到它们(mazda\d),但是我不知道如何用匹配模式的修改版本替换它们(即 \d 应该保留)。
理想输出:
mazda 6 mazda 6 3 2
Run Code Online (Sandbox Code Playgroud)
您可以捕获正则表达式中的数字并在替换中使用它的反向引用:
str = "mazda mazda6 mazda 6 mazda3 mazda2"
result = re.sub(r'\bmazda(\d+)', r'\1', str)
Run Code Online (Sandbox Code Playgroud)
输出:
>>> print result
'mazda 6 mazda 6 3 2'
Run Code Online (Sandbox Code Playgroud)