我不确定从哪里开始做这个。我知道我可以像这样做掩码的逐位逻辑组合:(mask1 & mask2) | mask3 | (mask4 & (mask5 | mask6))
现在,如果有一个用户输入了一个类似:'(criteria1 & criteria2) | criteria3 | (criteria4 & (criteria5 | criteria6))'
的字符串,但是需要通过一个函数来解释每个条件以确定并返回一个掩码,那么我如何保留括号和逻辑,然后组合这些掩码呢?
发布于 2017-08-17 19:30:31
经过一些工作,我能够使用正则表达式和eval()
来做到这一点。
使用正则表达式,我提取了“模板”和“条件”。“模板”将类似于1 & 2 | (3 & 4 & (5 or 6))
,相关的“条件”将类似于['criteria1', 'criteria2', ..., 'criteria6']
。然后,我可以随心所欲地操作条件,然后将操作后的值替换回模板字符串中。最后,我可以只运行eval(template)
或要执行的最后一个字符串的任何名称。
https://stackoverflow.com/questions/45717860
复制相似问题