使用Python中的字符串字典替换某些短语中的某些字符串

时间:2015-06-21 13:40:41

标签: python dictionary

我有一个包含一些值的字典

color=[black, white,....]

a有很多字符串(在一个数组中)包含很多这种颜色,我需要用字母C替换它们。 例如,

"this is a phrase and it contains Blue"

必须是

"this is a phrase and it contains C"

我还需要小写颜色...(在字典中,第一个字母大写。

这是我的代码,但它不能很好地运作

for item in json_data:

    count_tot=count_tot+1;
    for color in attributes_dictionary:
        if color in item["title"]:
            item["title"]=item["title"].replace(color,"{"+color+"}\_C")
            print(item["title"])

1 个答案:

答案 0 :(得分:1)

只需将|作为分隔符加入颜色列表中的所有元素,并将其作为re.sub函数中的正则表达式传递。 (?i)有助于执行不区分大小写的匹配,\b有助于匹配确切的单词。

import re
color=['black', 'white', 'Blue']
s = "this is a phrase and it contains Blue"
print re.sub(r'(?i)\b(?:'+'|'.join(color)+r')\b', 'C', s)

要获得评论中提到的输出,您需要使用捕获组。

print re.sub(r'(?i)\b('+'|'.join(color)+r')\b', r'{\1}_C', s)