Python:用另一个词替换出现的第一个词

标签 python string replace

我有七种水果,你可以在一个句子中使用,你可以用不止一种,想写多少次都可以。它们是西瓜桃子橙子苹果香蕉葡萄。我想报告这句话并替换出现的第一个水果,无论该词是否多次显示并且允许列表中给出的多个水果都带有抱子甘蓝,如下所示。

In: Apple apple apple what is a watermelon have to do to get an apple?

Out: Brussel sprouts apple apple what is a watermelon have to do to get an apple?

In: The apple likes orange

Out: The brussel sprouts likes orange

现在我正在弄乱下面的这段代码,但这只适用于一种水果,我需要同时检查所有七个,看看哪个是第一个,然后将其替换。

print sentence.replace("apple", "brussel sprouts", 1)

我该怎么做?

最佳答案

通过 re.sub(.*?) 首先有助于捕获第一个水果之前的所有字符。模式 (?:Watermelon|Pear|Peach|Orange|Apple|Banana|Grapes) 匹配第一个水果名称。因此,将匹配的字符替换为组索引 1 内的字符将为您提供所需的输出。

>>> import re
>>> s = "Apple apple apple what is a watermelon have to do to get an apple?"
>>> re.sub(r'(?i)^(.*?)\b(?:Watermelon|Pear|Peach|Orange|Apple|Banana|Grapes)\b', r'\1brussel sprouts', s)
'brussel sprouts apple apple what is a watermelon have to do to get an apple?'
>>> re.sub(r'(?i)^(.*?)\b(?:Watermelon|Pear|Peach|Orange|Apple|Banana|Grapes)\b', r'\1brussel sprouts', 'The apple likes orange')
'The brussel sprouts likes orange'

(?i) 调用了不区分大小写的修饰符,它强制正则表达式引擎进行不区分大小写的匹配。

关于Python:用另一个词替换出现的第一个词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28400423/

相关文章:

Javascript 或 jQuery 替换文本

Excel VBA用函数替换但留下数字

python - django 中带有 mod_wsgi 的静态文件

c - 对文件中的字符串进行标记

php - 组合字符和数字 php

r - 使用 R 正则表达式提取所有符合条件的子字符串

C# - 处理 string.replace 中的矛盾

python - 即使退出后,环境变量也会保留在 Python 脚本中

python - 我可以从正则表达式创建列表吗?

python - 将 json 与 OrderedDict 和 Datetime 一起使用