我有一个包含一些值的字典
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"])
答案 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)