2017-08-16 46 views
0

我不確定從哪一個開始。我知道我可以按照如下方式按位進行邏輯組合:(mask1 & mask2) | mask3 | (mask4 & (mask5 | mask6))解釋要執行的字符串和/或數據幀掩碼的組合

現在,如果我有一個用戶輸入字符串,如:'(criteria1 & criteria2) | criteria3 | (criteria4 & (criteria5 | criteria6))',但需要通過函數來​​解釋每個條件以確定並返回一個掩碼,我怎樣才能保留括號和邏輯,然後結合面具?

回答

0

經過一番努力,我可以用正則表達式和eval()來做到這一點。

使用正則表達式,我提取'模板'和'標準'。 「模板」看起來像1 & 2 | (3 & 4 & (5 or 6)),而相關的「標準」將類似['criteria1', 'criteria2', ..., 'criteria6']。然後,我可以操縱標準,但是我想要的,然後將操縱值替換回模板字符串。最後,我可以運行eval(template)或任何要執行的最終字符串的名稱。