Python如何通过字典替换字符串

时间:2018-05-05 07:19:20

标签: python dictionary

EX)

import re

nodeDic = {"ABC-3K":"True","TTR":"True"}<br />
address = "ABC-3K and TTR"

result = eval(re.sub(r"\b(\w+)\b", lambda m: nodeDic.get(m.group(1), m.group(1)), address))<br />

print(result)
--->True and True

但我有错误:

  

Traceback(最近一次调用最后一次):文件   &#34; C:/Users/IT1_807_6/PycharmProjects/choonlog/Test/eval.py" ;,第6行,在          result = eval(re.sub(r&#34; \ b(\ w +)\ b&#34;,lambda m:nodeDic.get(m.group(1),m.group(1)),address))File &#34;&#34;,行   1       GSK-3b和True            ^ SyntaxError:语法无效

当我删除连字符( - )时没有问题。但是当我使用连字符( - )时,它很重要。我必须使用连字符( - )

1 个答案:

答案 0 :(得分:0)

好的,我找到了一个正如你想要的那样的正则表达式,但它是一个完整的混乱:

 (?:(?<=\A)|(?<=\s))(.+?)(?=\Z|\s)

如果你使用这个正则表达式:

nodeDic = {"ABC-3K":"True","TTR":"True"}
address = "ABC-3K and TTR"

result = eval(re.sub(r"(?:(?<=\A)|(?<=\s))(.+?)(?=\Z|\s)", lambda m: nodeDic.get(m.group(1),m.group(1)), address))

print(result) # prints True