亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種多模式正則表達式匹配方法及裝置的制造方法_3

文檔序號:8922631閱讀:來源:國知局
表達式超集是根據(jù)正則表達式的精確字符串和模糊字符串 的邏輯關系組成的表達式。
[0070] 這里的正則表達式超集是在實現(xiàn)第二層匹配之前應預先生成的,每個正則表達式 對應有一個正則表達式超集,針對如何生成正則表達式超集,本發(fā)明還提出了具體的實現(xiàn) 方法,該方法包括:
[0071] 對正則表達式進行分割得到精確字符串和模糊字符串,采用邏輯關系符號替代所 述模糊字符串,根據(jù)所述精確字符串和所述邏輯關系符號生成正則表達式超集;所述邏輯 關系符號用于表征所述模糊字符串與其相鄰的精確字符串之間的邏輯關系。
[0072] 這里需要說明的是,超集是從數(shù)據(jù)集合的概念上理解的,一個數(shù)據(jù)集合的超集必 然包含這個數(shù)據(jù)集合的所有元素,以及各個元素的邏輯關系。正則表達式超集所涵蓋的元 素范圍遠大于該正則表達式所涵蓋的元素范圍。從該生成方法可以看出,利用邏輯關系符 號替代了模糊字符串,由于邏輯關系符號所涵蓋的元素范圍遠大于模糊字符串所涵蓋的范 圍,因此使得建立的超集的范圍遠大于正則表達式的范圍。由于正則表達式字符串間具有 一定的順序關系,具有一定的數(shù)據(jù)長度,為了建立一個范圍較合適的超集,這里的邏輯關系 符號可以是順序與、與、或、長度判定符號等形式。
[0073] 第二層過濾的本質是詞匹配過程和語義匹配過程。所謂詞匹配過程是指與正則表 達式超集里的精確字符串進行匹配;所述語義匹配過程是指根據(jù)詞匹配結果決定用哪個超 集語法樹進行匹配,遍歷語法樹,當語法樹被命中時,表明該數(shù)據(jù)分片通過第二層過濾,視 為正則表達式超集命中。這里的語法樹實質是正則表達式超集的另一種展示形式,語法樹 是以超集中的精確字符串作為終端節(jié)點,以超集中的邏輯關系符號作為非終端節(jié)點。
[0074] 為了更好的理解上述步驟S102,下面以具體場景為例對其作進一步解釋說明。
[0075] 在攻擊檢測應用領域里,在上述第一層過濾之后再進行第二層過濾主要是為了避 免出現(xiàn)大量復雜網(wǎng)絡環(huán)境中的"渾濁"數(shù)據(jù),阻塞到最后的正則表達式匹配環(huán)節(jié),因此,第二 層過濾主要篩選不能發(fā)生命中的數(shù)據(jù),直接將這些數(shù)據(jù)分流以減少正則表達式匹配的數(shù)據(jù) 量,以避免出現(xiàn)DFA的空間膨脹問題或者NFA匹配速度慢的問題。
[0076] 在完成第二層過濾,且過濾到一些數(shù)據(jù)分片時,就進入S103以對數(shù)據(jù)分片進行最 終匹配確認。
[0077] S103,根據(jù)所述命中的正則表達式超集確定對應的正則表達式,利用所述正則表 達式對所述第二層過濾的數(shù)據(jù)分片作匹配。
[0078] 由于待匹配數(shù)據(jù)中的大部分數(shù)據(jù)是"純凈"數(shù)據(jù),因此在第一層過濾和第二層過濾 處理時,已經(jīng)將大部分數(shù)據(jù)分流掉,進入到最后環(huán)節(jié)的數(shù)據(jù)非常少,又因為在第二層過濾時 已經(jīng)可以確定數(shù)據(jù)分片與哪個正則表達式最可能匹配,因此,將多模式匹配分解到不同的 場景的單模匹配(數(shù)據(jù)分片對應的單模匹配),基于此,S103具體實現(xiàn)時,可以采用非確定 有限自動機(NFA)方法實現(xiàn)匹配,也可以采用確定有限自動機(DFA)的方式實現(xiàn)匹配。
[0079] 另外,發(fā)明人在上述兩層過濾的基礎上,還提出了步驟S103可以僅對正則表達式 模糊字符串部分進行構建就可以完成最終的匹配。主要是因為在第一層過濾和第二層過濾 時已經(jīng)確定了數(shù)據(jù)分片精確字符串相匹配,因此,在最后一個環(huán)節(jié)也可以僅對模糊字符串 部分進行匹配。
[0080] 基于上述描述,上述S103在具體實現(xiàn)時,可以有以下兩種實現(xiàn)方式:
[0081] 第(1)種方式:通過構造非確定有限自動機或確定有限自動機表述所述命中的正 則表達式超集對應的正則表達式中的模糊字符串,利用構造的非確定有限自動機或確定有 限自動機對第二層過濾的數(shù)據(jù)分片進行匹配。
[0082] 第(2)種方式:通過構造非確定有限自動機或確定有限自動機表述所述命中的正 則表達式超集對應的正則表達式,利用構造的非確定有限自動機或確定有限自動機對第二 層過濾的數(shù)據(jù)分片進行匹配。
[0083] 上文描述的以圖2示例的第一過濾特征集的生成方法,下面通過具體示例對其 S201的實現(xiàn)過程作進一步解釋說明,主要是以PCRE正則表達式語法為例來進行舉例說明。
[0084] 對正則表達式進行分割,主要是以模糊因子作為分隔符,將正則表達式分割成精 確字符串和模糊字符串。正則表達式的模糊因子是指不能確定地表示一個ASCII字符的符 號及其組合。
[0085] 根據(jù)PCRE語法(正則表達式語法)的語法特征,可以定義如下模糊因子:
[0086] (1)元字符
[0087] (2)分支符:" | "。
[0088] (3)分組符:。
[0089] (4)后綴符或詞組:" + "," " {m,n},{m,},{,n},{m}。
[0090] (5)字符詞組,例如[a-z],[ ' 0 - 9],[ [:alpha:]]等。
[0091] (6)引用符號,例如正則表達式來描述為(\\[DdSsWwBbeZAabtnvfrO- 9]) | (\\[Pp]((\{[a-zA-Z- ] * \}) |([a-zA-Z])) ?),則 \d,\f,\n,\pF,\p{N ame}為引用符號。
[0092] (7)惰性匹配和修改匹配模式的高級語法符號,例如" " {m, n} ? ","\Q- \E',,''( ?i) ",''( ? 一i) ?s) ",''( ? 一s) ?m) ",''( ? 一m) ', 等。
[0093] 在具體實現(xiàn)時,模糊因子也可以是以上各種形式的組合形式。
[0094] 其次,定義模糊判定條件:
[0095] (a)對于后綴符或詞組,與其語法前綴合并成一個模糊字符串,例如正則表達式 abc+d可分割得到模糊字符串c+ ;
[0096] (b)對于分支符號,若與分組符結合使用,則將分組內(nèi)所有分支作為一個模糊字符 串,否則不分割;
[0097] (c)其余模糊因子作為分隔符,自身作為一個模糊字符串。
[0098] (d)所有被模糊子串分開的字符串,作為精確串字符串。
[0099] 最后,通過定義的模糊判定條件,掃描正則表達式,將其分割成順序的精確字符串 和模糊字符串,并保留字符串之間的位置關系。
[0100] 下面舉例說明:
[0101] 例1 :正則表達式
[0102] "(20[01] [\\x09 - \\x0d-~]*(AUTHINFOUSER|news)finger" 可 分割成"20,[01][\\x09 - \\x0d-~]*(AUTHINFOUSER|news),finger" 的 3個字符串。第一個"20"和最后一個"finger"均為精確字符串,中間的" [01] [\\x09 - \\x0d-~]*(AUTHINFOUSER|news)" 為模糊字符串。
[0103] 在分割之后,也可以再進一步對模糊字符串進行確定化處理,接下來通過舉例方 式對模糊字符串的確定化過程進行解釋說明。
[0104] 確定化方法是針對一些特定構成的模糊字符串作進一步確定化,實施原則是:操 作簡單,不縮小語義覆蓋范圍,相鄰精確字符串合并,分割的字符串數(shù)量可控。例如,可以分 步實施:
[0105] (1)對于包含后綴符或詞組的模糊字符串,將其確定化為攜帶精確字符的字符串, 例如將 "a{m,n},a{m},a{m,} " 確定化為 "a"*a{0,n-m},a…a{0},a…a* " 其中"…" 表示a展開m次,;將確定化之后的精確字符與相鄰的分割得到的精確字符串合并。
[0106] 例2 :正則表達式"abc{3,10}de"分割成"&13,〇{3,10},(16",經(jīng)過模糊字符串確定 化將c{3,10}確定化為cccc{0, 7},則將其與左邊相鄰的精確字符串"ab"合并得到"abccc, c{0,7},de"。
[0107] 再例如,將"a+"確定化為"aa*",將確定化之后的精確字符與相鄰的分割得到的 精確字符串合并。
[0108] 例3 :正則表達式"abc+
當前第3頁1 2 3 4 5 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1