前言
最近在實作需要處理字串並且把它改成真實的判斷式
,找 google 的過程中找到了一篇解答,當中剛好看到 Operator 這個套件,以下就用一些範例來示範~
實作
處理的範例: 1=1AND2<5OR8>9
可以使用re
把字串處理成陣列
1 | re.split("AND|OR", payload) |
接著再使用
迴圈
+同樣的方法去處理掉=
、>
、<
在處理完之後就可以找到所有的 key
以及 value
的陣列
接著就是要把 AND
、OR
找出來存下來,這邊我會會使用split('AND', 1)
只切第一個找到的AND
字串,因為像是 SQL Where 子句的功能要一個一個處理才行,否則最後判斷會出問題。
1 | while re.search('(AND)|(OR)', payload) is not None: |
接著再切完之後會拿到operator_list
知道裡面有哪些運算子的陣列,以原本的資料來說可以用迴圈去處理,這邊我就用簡單的範例來表示operator
可以處理的東西。
像是operator
除了可以判斷純數字以及純字串以外,也可判斷英文
+數字
的組合。
1 | operator_list = ['>', '<', '='] |
使用以上方法可以比對運算子,而使用以下方法則可以比對AND
以及OR
1 | ex = ['AND', 'OR'] |
結論
透過 operator
這個函示庫讓我處理運算子們
可以少很多事,藉此紀錄一下工作上使遇到的一些方法以及問題,最驚訝的就是可以比對英文
+中文
的判斷式,以一些韌體的本版資訊來說他們會擁有這樣的組合,在上傳之後要比對時用這樣的方法就很方便,若有什麼問題歡迎留言給我 😊