0

我不确定从哪里开始。我知道我可以像这样对掩码进行按位逻辑组合:(mask1 & mask2) | mask3 | (mask4 & (mask5 | mask6))

现在,如果我让用户输入一个字符串,例如:'(criteria1 & criteria2) | criteria3 | (criteria4 & (criteria5 | criteria6))',但需要通过函数解释每个条件以确定并返回掩码,我如何保留括号和逻辑,然后组合掩码?

4

1 回答 1

0

经过一些工作,我能够使用正则表达式和eval().

使用正则表达式,我提取了“模板”和“标准”。“模板”看起来像1 & 2 | (3 & 4 & (5 or 6)),相关的“标准”看起来像['criteria1', 'criteria2', ..., 'criteria6']。然后我可以随心所欲地操纵标准,然后将操纵的值替换回模板字符串。最后,我可以运行eval(template)或要执行的最终字符串的任何名称。

于 2017-08-17T19:30:31.107 回答