繁体   English   中英

正则表达式搜索和替换模式与修改模式 - Python

[英]Regex search and replace pattern with modified pattern - Python

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

例如:

mazda mazda6 mazda 6 mazda3 mazda2 

我希望'mazda6''mazda3''mazda2''6''3''2'取代。 我可以使用正则表达式(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'

RegEx演示

您可以使用mazda 断言来要求mazda后跟一个数字而不实际匹配它:

str = "mazda mazda6 mazda 6 mazda3 mazda2"
re.sub(r'mazda(?=\d+)', r'', str)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM