繁体   English   中英

如何在python中使用正则表达式替换最后匹配的单词

[英]How to replace the last matched word using regex in python

在 python 中使用正则表达式函数我无法替换重复的单词/句子。

从下面的示例中,如何替换重复多次的单词,即语句中多次重复 Peter Piper 以及如何替换最后一个 Peter Piper:

ran_ln = "Peter Piper 采摘了一撮腌辣椒 一啄 Peter Piper 采摘的腌辣椒 如果 Peter Piper 采摘了一啄腌辣椒 Peter Piper 采摘的那一啄腌辣椒在哪里?

我尝试的事情是:

 re.sub("Piper", "aaaaa", ran_ln)

但是当我使用这个函数时,所有的 Peter Piper 词都被替换了。

提前致谢。

负前瞻将是你的朋友。

另请注意,建议在正则表达式模式中使用原始字符串

out =  re.sub(r'(Peter Piper)(?:(?!.*\1))'gm, 'aaaaa', ran_ln)

编辑:正如 Diadistis 建议的那样,删除了误导性的点错字。

暂无
暂无

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

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