python - 用字符串中的单词替换单词

标签 python string replace

我有一个像下面这样的字典

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"

关于python - 用字符串中的单词替换单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28363797/

相关文章:

python - 将整数从一个字符串移动到另一个字符串?

python - 主从 postgresql,具有 django 应用程序的日志记录和监控功能

java - 如何从 JVM 内存中清除明确的敏感数据?

string - 使用包含引号的字符串编写代码的更易读的方式 `"`

c - 如何在具有动态字符串的函数中使用 malloc 并且不在末尾添加符号

java - 在 Java 中的文本周围添加 HTML 标签

python - 使用输出 "SMEMBERS"命令作为redis中 "MGET"的输入?

python - 如何/在哪里定义/传递cloudformation参数?

list - Haskell - 是否存在替换功能?

java - 替换多个索引中的字符