none
一個expression string進行parse RRS feed

  • 問題

  • expression的組成為fieldName = value (可有無logic), 還可用()來保持優先性

    value也可能會有特殊符號, 例如:+ - && || ! ( ) { } [ ] ^ " ~ * ? : /, 拆解後,會當做跳脫字元處理, 會在前面加\, 例如:ALL = \(1\+1\)

    logic都是大寫, 例如:AND OR NOT

    例如: ((ALL = a) OR fieldName1 = b) AND fieldName2 = dc

    我的問題是:

    1.如何知道此expression是正確的, 可能()配對有誤, logic不為大寫

    2.如何拆解fieldName與value與logic

    2014年1月27日 上午 10:06

解答

  • 你先把這些指令拆解成二元樹後,再來思考吧。

    強力監督SQL Injection問題!!

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    2014年1月27日 下午 01:31
    版主

所有回覆

  • 你先把這些指令拆解成二元樹後,再來思考吧。

    強力監督SQL Injection問題!!

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    2014年1月27日 下午 01:31
    版主
  • 您可以參考這個範例的做法:An Implementation of Regular Expression Parser in C#
    2014年1月28日 上午 03:46
  • 你先把這些指令拆解成二元樹後,再來思考吧。

    強力監督SQL Injection問題!!

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    試想把logic當成運算元, 其它當成運算子, 變成樹狀(忘記是前中後序那個, 晚點再查), 這樣子的話

    1.優先性問題能解

    2.field value logic也能知道有哪些

    3.針對node與left檢查, 判斷正確性, 括弧的話( ( { [ ] } )), 我在想想看

    2014年1月28日 上午 06:47