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:语法无效
当我删除连字符( - )时没有问题。但是当我使用连字符( - )时,它很重要。我必须使用连字符( - )
答案 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