替换字符串中的特定单词(Python)

Posted

技术标签:

【中文标题】替换字符串中的特定单词(Python)【英文标题】:Replacing specific words in a string (Python) 【发布时间】:2012-09-14 07:50:24 【问题描述】:

我想替换字符串句子中的单词,例如:

What $noun$ is $verb$?

用实际的名词/动词替换'$ $'(包括)中的字符的正则表达式是什么?

【问题讨论】:

【参考方案1】:

您不需要正则表达式。我会做的

string = "What $noun$ is $verb$?"
print string.replace("$noun$", "the heck")

仅在需要时使用正则表达式。它通常较慢。

【讨论】:

也可以将替换字符串串在一起:str.replace("$noun$", noun).replace("$verb$", verb) 我有一个单词列表和类型(单词,类型)的数据库。类型可以是名词、动词等。我需要在替换它之前检查它是什么类型的词。你会怎么做? 嗯,我不确定我是否跟随。什么类型的数据库?如果数据库很小,我会将其加载到内存中并将其存储为字典。查找类型只是types[word]【参考方案2】:

鉴于您可以根据自己的喜好随意修改$noun$ 等,现在最好的做法可能是在字符串上使用format 函数:

"What noun is verb?".format(noun="XXX", verb="YYY")

【讨论】:

【参考方案3】:
In [1]: import re

In [2]: re.sub('\$noun\$', 'the heck', 'What $noun$ is $verb$?')
Out[2]: 'What the heck is $verb$?'

【讨论】:

【参考方案4】:

使用字典来保存正则表达式模式和值。使用 re.sub 替换标记。

dict = 
   "(\$noun\$)" : "ABC",
   "(\$verb\$)": "DEF"
 
new_str=str
for key,value in dict.items():
   new_str=(re.sub(key, value, new_str))
print(new_str)

输出:

What ABC is DEF?

【讨论】:

以上是关于替换字符串中的特定单词(Python)的主要内容,如果未能解决你的问题,请参考以下文章

替换出现在两个特定单词之间的一组字符串的所有出现

用文件中的另一个词替换特定词[关闭]

如何使用python搜索和替换DOTM文件中的字符串

替换所有未包含在 OPEN 和 CLOSE 中的特定单词的出现?

替换字符串中的单词而不跳过空格

如何用 Python 列表中的内容替换字符串中找到的单词