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

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

What $noun$ is $verb$?

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

【问题讨论】:

    标签: python string replace


    【解决方案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?
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-10-02
          • 1970-01-01
          • 2014-04-01
          • 2021-06-30
          • 2021-08-20
          • 2021-03-15
          • 1970-01-01
          • 2013-09-06
          相关资源
          最近更新 更多