我有一个像下面这样的字典
word_dict = {'a': 'a1', 'winter': 'cold', 'summer': 'hot'}
我有一个这样的字符串:
data = "It's winter not summer. Have a nice day"
我想做的是将 data 中的单词 a 替换为 a1,将 winter 替换为 cold 等。我确实尝试使用以下代码:
for word in word_dict:
data = data.replace(word, word_dict[word])
但它失败了,因为它替换了子字符串(data 的子字符串,而不是单词)。事实上,单词 Have 被替换为 Ha1ve。
结果应该是:
data = "It's cold not hot. Have a1 nice day"
请您参考如下方法:
你可以使用 re.sub 。 \b 匹配单词字符和非单词字符的单词边界。我们需要使用单词边界来匹配一个精确的单词字符串,否则它也会匹配 day
a
>>> word_dict = {'a': 'a1', 'winter': 'cold', 'summer': 'hot'}
>>> data = "It's winter not summer. Have a nice day"
>>> for word in word_dict:
data = re.sub(r'\b'+word+r'\b', word_dict[word], data)
>>> data
"It's cold not hot. Have a1 nice day"
