Python 删除关键字后的单个单词

Python 删除关键字后的单个单词,python,Python,删除“亲爱的”关键字后的名称的Python脚本 我有一系列的案例评论,我正试图删除“亲爱的”一词后面的人的名字。例如,我的字符串可能是“亲爱的Jane,其中一个产品有问题。”我希望脚本找到“亲爱的”,然后删除下面的单词“Jane”。我的脚本标识为“亲爱的”,但删除了名称之后的所有内容: text = 'Dear Jane, I am having an issue with one of the products.' text = ''.join(text.partition('Dear')[

删除“亲爱的”关键字后的名称的Python脚本 我有一系列的案例评论,我正试图删除“亲爱的”一词后面的人的名字。例如,我的字符串可能是“亲爱的Jane,其中一个产品有问题。”我希望脚本找到“亲爱的”,然后删除下面的单词“Jane”。我的脚本标识为“亲爱的”,但删除了名称之后的所有内容:

text = 'Dear Jane, I am having an issue with one of the products.'

text = ''.join(text.partition('Dear')[:2])

print(text)

对于任何高级文本处理,请使用
re
内置模块:

import re
text = 'Dear Jane, I am having an issue with one of the products.'

print(re.sub('^Dear\s(.*?),', 'Dear,', text))
输出:

亲爱的,我有一个产品的问题


如果您想离开亲爱的
,但删除了名称,您可以在此处使用正则表达式和
re.sub

>>> import re
>>> re.sub(r'(Dear)\s\w+', r'\1', text)
'Dear, I am having an issue with one of the products.'
如果您还想删除亲爱的
,您可以更改正则表达式:

>>> re.sub(r'Dear\s\w+[^\w]+', '', text)
'I am having an issue with one of the products.'

亲爱的,你想离开吗?所以它说:
亲爱的,我有…
不,它也可以和名字一起删除。如果它是“亲爱的约翰·史密斯”并且想要删除两个名字,你会如何编辑脚本?在
亲爱的任何东西之后总是有一个逗号吗
?不,不会总是有一个逗号。不幸的是,没有一种通用的方法可以检测是否需要删除1个或2个单词,而不需要将名称与可能的名称列表进行比较,etcNo担心,仅此一项就非常有用。谢谢