我是python的新手,正在尝试寻找执行匹配和替换的最佳,最有效的方法。这是我的问题。

我有一本字典,里面有以下条目。

myDict = {'I HAVE A * NAMED *':'A <star=1> named <star=2> is cool!'}


我的目标是输入:

myInput = raw_input()
# Example input: I HAVE A DOG NAMED MAX


然后将此输入与myDict中的键匹配:

input: 'I HAVE A DOG NAMED *MAX*' matches with dictionary key: 'I HAVE A * NAMED *'


然后输出带有星标的键值,并用缺少的myInput单词DOG和MAX代替。

output = 'A DOG named MAX is cool!'


任何明智的建议,将不胜感激!

最佳答案

这就是你想要的吗?

import re

myDict = {'I HAVE A (.+) NAMED (.+)':'A <star=1> named <star=2> is cool!'}
input="I HAVE A dog NAMED max"

for x in myDict.keys():
   if re.match(x,input) :
        d=myDict[x]
        for n in range(1, 3):
           d = d.replace('<star='+str(n)+'>',re.match(x,input).group(n))
        print '=>',  d

关于python - 推荐使用Python文本匹配和替换技术,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42559596/

10-10 18:20