2017-08-16 15 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)を実行するか、実行する最後の文字列の名前を実行します。

関連する問題