正則表達(dá)式只選一個(gè)精確字符串來(lái)參與的特點(diǎn),能夠保證過(guò) 濾速率。
[0150] 在第一層過(guò)濾完成時(shí),接著進(jìn)行第二層過(guò)濾,具體是根據(jù)所述命中的精確字符串 查找對(duì)應(yīng)的正則表達(dá)式超集,按照所述正則表達(dá)式超集對(duì)所述第一層過(guò)濾的數(shù)據(jù)分片進(jìn)行 第二層過(guò)濾得到第二層過(guò)濾的數(shù)據(jù)分片和命中的正則表達(dá)式超集;所述正則表達(dá)式超集是 根據(jù)正則表達(dá)式的精確字符串和模糊字符串的邏輯關(guān)系組成的表達(dá)式;由于第二層過(guò)濾采 用的是正則表達(dá)式超集,其描述能力已經(jīng)十分接近原始的正則表達(dá)式,能夠做到盡可能排 除不匹配的數(shù)據(jù),以過(guò)濾出最接近原始正則表達(dá)式的數(shù)據(jù)分片,避免大量的"渾濁"數(shù)據(jù)進(jìn) 入到最后的正則表達(dá)式匹配階段,以間接提高匹配效率,同時(shí)將多模式匹配分解到不同場(chǎng) 景(不同數(shù)據(jù)分片)上的單模匹配,進(jìn)而避免了DFA空間膨脹或NFA匹配速度過(guò)慢的問(wèn)題。 最后,對(duì)第二層過(guò)濾得到的數(shù)據(jù)分片,利用其對(duì)應(yīng)的正則表達(dá)式作單條匹配。因此,本發(fā)明 的技術(shù)方案通過(guò)兩層過(guò)濾方式提高過(guò)濾速率和過(guò)濾效果,進(jìn)而以保證匹配性能的穩(wěn)定性, 在保證攻擊性數(shù)據(jù)被過(guò)濾的情況下,盡可能避免純凈數(shù)據(jù)的通過(guò)。
[0151] 需要說(shuō)明的是,本說(shuō)明書(shū)中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重 點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見(jiàn)即可。 對(duì)于裝置類實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡(jiǎn)單,相關(guān)之處參 見(jiàn)方法實(shí)施例的部分說(shuō)明即可。
[0152] 最后,還需要說(shuō)明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將 一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開(kāi)來(lái),而不一定要求或者暗示這些實(shí)體或操作 之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)"包括"、"包含"或者其任何其他變體 意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括 那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或 者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句"包括一個(gè)……"限定的要素,并 不排除在包括所述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同要素。
[0153] 以上對(duì)本申請(qǐng)所提供的多模式正則表達(dá)式匹配方法及裝置進(jìn)行了詳細(xì)介紹,本文 中應(yīng)用了具體個(gè)例對(duì)本申請(qǐng)的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫 助理解本申請(qǐng)的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請(qǐng)的思 想,在【具體實(shí)施方式】及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書(shū)內(nèi)容不應(yīng)理解為對(duì) 本申請(qǐng)的限制。
【主權(quán)項(xiàng)】
1. 一種多模式正則表達(dá)式匹配方法,其特征在于,該方法包括: 按照預(yù)先建立的第一層過(guò)濾特征集對(duì)待匹配數(shù)據(jù)進(jìn)行過(guò)濾得到第一層過(guò)濾的數(shù)據(jù)分 片和命中的精確字符串;所述第一層過(guò)濾特征集包括:從每個(gè)正則表達(dá)式提取的一個(gè)長(zhǎng)度 超過(guò)預(yù)設(shè)閾值的精確字符串; 根據(jù)所述命中的精確字符串查找對(duì)應(yīng)的正則表達(dá)式超集,按照所述正則表達(dá)式超集對(duì) 所述第一層過(guò)濾的數(shù)據(jù)分片進(jìn)行第二層過(guò)濾得到第二層過(guò)濾的數(shù)據(jù)分片和命中的正則表 達(dá)式超集;所述正則表達(dá)式超集是根據(jù)正則表達(dá)式的精確字符串和模糊字符串的邏輯關(guān)系 組成的表達(dá)式; 根據(jù)所述命中的正則表達(dá)式超集確定對(duì)應(yīng)的正則表達(dá)式,利用所述正則表達(dá)式對(duì)所述 第二層過(guò)濾的數(shù)據(jù)分片作匹配。2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述第一層過(guò)濾特征集通過(guò)以下方式建 立: 對(duì)每個(gè)正則表達(dá)式進(jìn)行分割得到對(duì)應(yīng)的精確字符串和模糊字符串; 從每個(gè)正則表達(dá)式對(duì)應(yīng)的精確字符串中選擇長(zhǎng)度超過(guò)預(yù)設(shè)閾值的精確字符串,將選擇 的精確字符串組合成備選字符串集; 按照精確字符串的優(yōu)先級(jí)順序從所述備選字符串集中針對(duì)每個(gè)正則表達(dá)式選擇一個(gè) 精確字符串組合成第一層過(guò)濾特征集。3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,在所述對(duì)每個(gè)正則表達(dá)式進(jìn)行分割得到 對(duì)應(yīng)的精確字符串和模糊字符串之后,所述方法還包括: 將所述模糊字符串進(jìn)行確定化,并與相鄰的精確字符串分片合并。4. 根據(jù)權(quán)利要求2或3所述的方法,其特征在于,所述按照精確字符串的優(yōu)先級(jí)順序從 所述備選字符串集中針對(duì)每個(gè)正則表達(dá)式選擇一個(gè)精確字符串組合成第一過(guò)濾特征集,包 括: 按照字符串長(zhǎng)度大小關(guān)系來(lái)設(shè)置所述備選字符串集中每個(gè)正則表達(dá)式對(duì)應(yīng)的精確字 符串的優(yōu)先級(jí)順序,且該優(yōu)先級(jí)順序在使用過(guò)程中根據(jù)第一層過(guò)濾和第二層過(guò)濾的結(jié)果進(jìn) 行調(diào)整;從每個(gè)正則表達(dá)式對(duì)應(yīng)的精確字符串中選擇優(yōu)先級(jí)最高的精確字符串以組合成第 一層過(guò)濾特征集。5. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述正則表達(dá)式超集通過(guò)以下方式生成: 對(duì)正則表達(dá)式進(jìn)行分割得到精確字符串和模糊字符串,采用邏輯關(guān)系符號(hào)替代所述模 糊字符串,根據(jù)所述精確字符串和所述邏輯關(guān)系符號(hào)生成正則表達(dá)式超集;所述邏輯關(guān)系 符號(hào)用于表征所述模糊字符串與其相鄰的精確字符串之間的邏輯關(guān)系。6. -種多模式正則表達(dá)式匹配裝置,其特征在于,該裝置包括: 第一層過(guò)濾單元,用于按照預(yù)先建立的第一層過(guò)濾特征集對(duì)待匹配數(shù)據(jù)進(jìn)行過(guò)濾得到 第一層過(guò)濾的數(shù)據(jù)分片和命中的精確字符串;所述第一層過(guò)濾特征集包括:從每個(gè)正則表 達(dá)式提取的一個(gè)長(zhǎng)度超過(guò)預(yù)設(shè)閾值的精確字符串; 第二層過(guò)濾單元,用于根據(jù)所述命中的精確字符串查找對(duì)應(yīng)的正則表達(dá)式超集,按照 所述正則表達(dá)式超集對(duì)所述第一層過(guò)濾的數(shù)據(jù)分片進(jìn)行第二層過(guò)濾得到第二層過(guò)濾的數(shù) 據(jù)分片和命中的正則表達(dá)式超集;所述正則表達(dá)式超集是根據(jù)正則表達(dá)式的精確字符串和 模糊字符串的邏輯關(guān)系組成的表達(dá)式; 匹配單元,用于根據(jù)所述命中的正則表達(dá)式超集確定對(duì)應(yīng)的正則表達(dá)式,利用所述正 則表達(dá)式對(duì)所述第二層過(guò)濾的數(shù)據(jù)分片作匹配。7. 根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括: 第一層過(guò)濾特征集生成單元,用于生成所述第一層過(guò)濾特征集; 所述第一層過(guò)濾特征集生成單元,包括: 字符串分割子單元,用于對(duì)每個(gè)正則表達(dá)式進(jìn)行分割得到對(duì)應(yīng)的精確字符串和模糊字 符串; 備選字符串集生成子單元,用于從每個(gè)正則表達(dá)式對(duì)應(yīng)的精確字符串中選擇長(zhǎng)度超過(guò) 預(yù)設(shè)閾值的精確字符串,將選擇的精確字符串組合成備選字符串集; 第一過(guò)濾特征集生成子單元,用于按照精確字符串的優(yōu)先級(jí)順序從所述備選字符串集 中針對(duì)每個(gè)正則表達(dá)式選擇一個(gè)精確字符串組合成第一層過(guò)濾特征集。8. 根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述第一過(guò)濾特征集生成單元還包括: 確定化子單元,用于將所述模糊字符串進(jìn)行確定化,并與相鄰的精確字符串分片合并。9. 根據(jù)權(quán)利要求7或8所述的裝置,其特征在于,所述第一層過(guò)濾特征集生成子單元具 體用于: 按照字符串長(zhǎng)度大小關(guān)系來(lái)設(shè)置所述備選字符串集中每個(gè)正則表達(dá)式對(duì)應(yīng)的精確字 符串的優(yōu)先級(jí)順序,且該優(yōu)先級(jí)順序在使用過(guò)程中根據(jù)第一層過(guò)濾和第二層過(guò)濾的結(jié)果進(jìn) 行調(diào)整;從每個(gè)正則表達(dá)式對(duì)應(yīng)的精確字符串中選擇優(yōu)先級(jí)最高的精確字符串以組合成第 一層過(guò)濾特征集。10. 根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括: 正則表達(dá)式超集生成單元,用于對(duì)正則表達(dá)式進(jìn)行分割得到精確字符串和模糊字符 串,采用邏輯關(guān)系符號(hào)替代所述模糊字符串,根據(jù)所述精確字符串和所述邏輯關(guān)系符號(hào)生 成正則表達(dá)式超集;所述邏輯關(guān)系符號(hào)用于表征所述模糊字符串與其相鄰的精確字符串之 間的邏輯關(guān)系。
【專利摘要】本發(fā)明提供了一種多模式正則表達(dá)式匹配方法及裝置,其中方法包括:按照預(yù)先建立的第一層過(guò)濾特征集對(duì)待匹配數(shù)據(jù)進(jìn)行過(guò)濾得到第一層過(guò)濾的數(shù)據(jù)分片和命中的精確字符串;根據(jù)所述命中的精確字符串查找對(duì)應(yīng)的正則表達(dá)式超集,按照所述正則表達(dá)式超集對(duì)所述第一層過(guò)濾的數(shù)據(jù)分片進(jìn)行第二層過(guò)濾得到第二層過(guò)濾的數(shù)據(jù)分片和命中的正則表達(dá)式超集;根據(jù)所述命中的正則表達(dá)式超集確定對(duì)應(yīng)的正則表達(dá)式,利用所述正則表達(dá)式對(duì)所述第二層過(guò)濾的數(shù)據(jù)分片作匹配。本發(fā)明的技術(shù)方案通過(guò)兩層過(guò)濾方式提高過(guò)濾速率和過(guò)濾效果,進(jìn)而以保證匹配性能的穩(wěn)定性,在保證攻擊性數(shù)據(jù)被過(guò)濾的情況下,盡可能避免純凈數(shù)據(jù)的通過(guò)。
【IPC分類】G06F17/30
【公開(kāi)號(hào)】CN104899264
【申請(qǐng)?zhí)枴緾N201510262867
【發(fā)明人】侯智瀚, 鄒榮珠
【申請(qǐng)人】東軟集團(tuán)股份有限公司
【公開(kāi)日】2015年9月9日
【申請(qǐng)日】2015年5月21日