正则表达式搜索并用修改后的模式替换模式 - Python

Tes*_*ty8 4 python regex

是否可以使用正则表达式模式匹配找到一个字符串,对其进行操作并返回它?

例如:

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)

anu*_*ava 6

您可以捕获正则表达式中的数字并在替换中使用它的反向引用:

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)

正则表达式演示