如何在 python 中从 strting 中删除多个单词

How do I remove multiple words from a strting in python

提问人:Matsumoto 提问时间:1/17/2023 更新时间:1/17/2023 访问量:71

问:

我知道我如何删除一个单词。但是我不能删除多个单词。你可以帮我吗? 这是我的字符串,我想删除“颜色:”,“戒指尺寸:”和“个性化:”。

string = "Color:Silver,Ring size:6 3/4 US,Personalization:J"

我知道我如何删除一个单词。但是我不能删除多个单词。我想删除“颜色:”、“戒指尺寸:”和“个性化:”

python 字符串 替换

评论

0赞 Matija Sirk 1/17/2023
您是否尝试过创建一个要删除的单词列表并循环使用它?基本上,每次你想多次做某件事时,都使用循环(并在其中做一次,你知道的)。
0赞 executable 1/17/2023
你能出示代码吗?
0赞 Mark Setchell 1/17/2023
与其将其视为删除您不想要的部分,不如将其视为将您确实想要的部分作为新字符串进行提取。
0赞 Sembei Norimaki 1/17/2023
如果您只想要值,为什么不使用 : 和 拆分字符串,然后从索引 1、3 和 5 中获取数据,而不是删除单词?

答:

0赞 WingedSeal 1/17/2023 #1
string = "Color:Silver,Ring size:6 3/4 US,Personalization:J"
def remove_words(string: str, words: list[str]) -> str:
    for word in words:
        string = string.replace(word, "")
    return string

new_string = remove_words(string, ["Color:", "Ring size:", "Personalization:"])

另类:

string = "Color:Silver,Ring size:6 3/4 US,Personalization:J"
new_string = string.replace("Color:", "").replace("Ring size:", "").replace("Personalization:", "")
4赞 mozway 1/17/2023 #2

对于正则表达式来说,这似乎是一份不错的工作。

具体案例:

import re

out = re.sub(r'(Color|Ring size|Personalization):', '', string)

通用大小写(之前的任何单词)::

import re

out = re.sub(r'[^:,]+:', '', string)

输出:'Silver,6 3/4 US,J'

正则表达式:

[^:,]+   # any character but , or :
:        # followed by :

替换为空字符串 (= delete)