專利名稱:模式匹配方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及模式識(shí)別領(lǐng)域,尤其涉及一種模式匹配方法及一種模式匹配裝置。
背景技術(shù):
模式匹配的對(duì)象一般包括文本、圖像等,對(duì)文本的模式匹配一般是指在文本數(shù)據(jù)中搜索預(yù)定義的關(guān)鍵字,它在信息檢索、模式識(shí)別、拼寫檢查、語言翻譯、數(shù)據(jù)壓縮、搜索引擎、入侵才企測(cè)、內(nèi)容過濾、計(jì)算機(jī)病毒特征匹配以及基因序列比較等領(lǐng)域有著廣泛的應(yīng)用。
模式匹配一般通過模式匹配算法來實(shí)現(xiàn),模式匹配算法按照匹配模式的數(shù)目可分為單模式匹配算法和多模式匹配算法,單模式匹配算法是一次只能在文本中對(duì)一個(gè)模式進(jìn)行匹配的算法,多模式匹配算法是可以同時(shí)對(duì)多個(gè)模式進(jìn)行匹配的算法。因?yàn)槎嗄J狡ヅ渫ㄟ^一次掃描就可以找到與其匹配的所有模式,因此,較之單模式算法,其應(yīng)用范圍相對(duì)廣泛。
現(xiàn)有的多模式匹配算法,如由Aho&Corasick在1975年提出的多模式匹配算法(簡(jiǎn)稱AC算法),實(shí)現(xiàn)了一種自動(dòng)機(jī),可以在線性的時(shí)間里用一組關(guān)鍵詞去匹配一個(gè)輸入文本,其模式匹配通過Goto (轉(zhuǎn)移)函數(shù)、Failure (失效)函數(shù)、Output (輸出)函數(shù)來實(shí)現(xiàn)。
請(qǐng)參見圖1,是現(xiàn)有技術(shù)中由關(guān)鍵字集合(he, she, his, hers》生成的AC狀態(tài)機(jī)的示意圖,如圖所示,所述AC狀態(tài)機(jī)包括Goto函數(shù)11、 Failure函數(shù)12及Output函數(shù)13。設(shè)LN(O, 1, 2..,}為狀態(tài)集合,SP={he, she, his, hers〉為關(guān)鍵字集合(或稱為模式集合),Goto函數(shù)11是(U, SP) 的映射,該Goto函數(shù)11會(huì)根據(jù)當(dāng)前狀態(tài)和一個(gè)輸入的字符映射為另一個(gè)狀態(tài),如根據(jù)當(dāng)前狀態(tài)"0"和輸入字符"h"就會(huì)映射到狀態(tài)'T,; Failure函數(shù)12是用來指明當(dāng)某個(gè)模式與文本匹配不成功時(shí),應(yīng)處理的下一狀態(tài),如當(dāng)前狀態(tài)為"5"時(shí),輸入一個(gè)字符r, Goto函數(shù)11處理失敗,此時(shí)調(diào)用Failure函數(shù)12進(jìn)行處理,即當(dāng)狀態(tài)為"5"時(shí),其對(duì)應(yīng)處理的下一狀態(tài)為"2",當(dāng)跳轉(zhuǎn)到狀態(tài)"2"后,再調(diào)用Goto函數(shù)11繼續(xù)進(jìn)行處理;Output函數(shù)是在匹配過程中輸出已經(jīng)匹配的模式,如在狀態(tài)"2",其輸出(he〉。
在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問題請(qǐng)一并參照?qǐng)D2,是現(xiàn)有技術(shù)中由關(guān)鍵字集合Oie, she, his, hers)生成的Goto函數(shù)的數(shù)組表示圖。
如圖所示,所述Goto函數(shù)的數(shù)組表示圖包括10個(gè)狀態(tài),每個(gè)狀態(tài)上使用一個(gè)大小為256 ( 1個(gè)字節(jié)的表示量)的數(shù)組,狀態(tài)數(shù)越多,Goto函數(shù)占用的存儲(chǔ)空間就越大。又因?yàn)樗鯣oto函數(shù)是AC狀態(tài)機(jī)的一個(gè)重要組成部分,所以AC狀態(tài)機(jī)占用的存儲(chǔ)空間大小與Goto函數(shù)所占用的存儲(chǔ)空間大小成正比。結(jié)合圖1及圖2進(jìn)行說明,圖2中的由關(guān)4建字集合(he, she, his, hers}生成Goto函數(shù)的數(shù)組表示圖與圖1中的Goto函數(shù)11是對(duì)應(yīng)的,所述關(guān)鍵字集合(he, she,his, hers)中各模式分別為"he"、 "she"、 "his"、 "hers",各模式對(duì)應(yīng)的字節(jié)長(zhǎng)度分別為2個(gè)字節(jié)、3個(gè)字節(jié)、3個(gè)字節(jié)、4個(gè)字節(jié)。如,由模式長(zhǎng)度為2個(gè)字節(jié)的模式"he"生成的Goto函數(shù)的狀態(tài)數(shù)有2個(gè),分別是狀態(tài)"0"和狀態(tài)'T,,所述生成的Goto函數(shù)占用的存儲(chǔ)空間為2個(gè)字節(jié);當(dāng)模式的數(shù)量增加或長(zhǎng)度增大時(shí),如關(guān)鍵字集合(he, she, his, hers},其模式數(shù)量為4個(gè),由該關(guān)鍵字集合生成Goto函數(shù)的狀態(tài)數(shù)有10個(gè),占用的存儲(chǔ)空間為10個(gè)字節(jié)。可以看出,Goto函數(shù)中的狀態(tài)數(shù)與模式的數(shù)量及模式的長(zhǎng)度成正比,Goto函數(shù)占用的存儲(chǔ)空間與Goto函數(shù)中的狀態(tài)數(shù)成正比,當(dāng)Goto函數(shù)占用的存儲(chǔ)空間增大時(shí),由Goto函數(shù)、Failure函數(shù)及Output函數(shù)所構(gòu)建的AC狀態(tài)機(jī)占用的存儲(chǔ)空間也會(huì)增大。比如,計(jì)算機(jī)病毒特征碼的數(shù)量有幾萬甚至幾十萬條,若采用所述特征碼來構(gòu)建AC狀態(tài)機(jī),那么所構(gòu)建的狀態(tài)機(jī)占用的存儲(chǔ)空間就會(huì)非常巨大,在進(jìn)行模式匹配時(shí),其巨大的存儲(chǔ)空間可能會(huì)影響到CPU的緩存命中率,進(jìn)而導(dǎo)致匹配速度的降低。
發(fā)明內(nèi)容
鑒于現(xiàn)有技術(shù)的不足,本發(fā)明實(shí)施例提供了 一種模式匹配方法及一種模式匹配裝置,可減少模式匹配所占用的存儲(chǔ)空間并提高模式匹配的速度。
為了達(dá)到上述發(fā)明目的,本發(fā)明實(shí)施例提供了一種模式匹配方法,進(jìn)行所述模式匹配的模式集合中的各模式分別包括各自的第 一子模式和第二子模式,對(duì)匹配對(duì)象進(jìn)行所述模式匹配包括基于多模式匹配算法,對(duì)匹配對(duì)象根據(jù)所述模式集合進(jìn)行第 一子模式的匹
配;
基于單模式匹配算法,對(duì)經(jīng)過所述第一子模式匹配成功之后的匹配對(duì)象根據(jù)所述模式集合進(jìn)行第二子模式的匹配,并在第二子模式匹配成功后輸出匹配結(jié)果。
相應(yīng)的,本發(fā)明實(shí)施例還提供了一種模式匹配裝置,包括存儲(chǔ)模塊,用于存儲(chǔ)模式集合,所述模式集合中的各模式分別包括第一子模式和第二子模式;
多模式匹配模塊,用于基于多模式匹配算法,對(duì)匹配對(duì)象根據(jù)所述模式集合進(jìn)行第一子模式的匹配;
單模式匹配模塊,用于基于單模式匹配算法,對(duì)經(jīng)過所述第一子模式匹配成功之后的匹配對(duì)象根據(jù)所述模式集合進(jìn)行第二子模式的匹配,并在第二子模式匹配成功后輸出匹配結(jié)果。
實(shí)施本發(fā)明實(shí)施例,具有如下有益效果
本發(fā)明實(shí)施例提供的模式匹配方法及裝置,結(jié)合多模式匹配算法及單模式匹配算法,對(duì)匹配對(duì)象進(jìn)行模式匹配,克服了現(xiàn)有技術(shù)采用多模式匹配算法進(jìn)行模式匹配帶來的模式匹配占用的存儲(chǔ)空間大、匹配速度低的問題,實(shí)現(xiàn)了節(jié)省存儲(chǔ)空間和提高模式匹配速度的目的。
圖1是現(xiàn)有技術(shù)中由關(guān)鍵字集合(he, she, his, hers)生成的AC狀態(tài)機(jī)的示意圖2是現(xiàn)有技術(shù)中由關(guān)鍵字集合(he, she, his, hers}生成的Goto函數(shù)的數(shù)組表示圖3是本發(fā)明實(shí)施例提供的模式匹配方法的第一實(shí)施例的流程示意圖;圖4是本發(fā)明實(shí)施例提供的模式匹配方法的第二實(shí)施例的流程示意圖;圖5是本發(fā)明實(shí)施例提供的匹配模板生成方法的流程示意圖;圖6是本發(fā)明實(shí)施例提供的模式匹配方法的第三實(shí)施例的流程示意圖;圖7是本發(fā)明實(shí)施例提供的模式匹配裝置的第一實(shí)施例的組成示意圖;圖8是本發(fā)明實(shí)施例提供的模式匹配裝置的第二實(shí)施例的組成示意圖;圖9是本發(fā)明實(shí)施例提供的由模式集合{telephone, telepathy, tech, elephant}
生成的匹配模板示意圖。
具體實(shí)施例方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明實(shí)施例提供的模式匹配方法及裝置,結(jié)合多模式匹配算法及單模式匹配算法,對(duì)匹配對(duì)象進(jìn)行模式匹配,以達(dá)到減少存儲(chǔ)空間和提高模式匹配速度的目的。
本發(fā)明實(shí)施例的模式匹配對(duì)象包括文本、圖像等,若進(jìn)行匹配的匹配對(duì)象為文本時(shí),相應(yīng)的匹配的模式則為文本中的字符串;若進(jìn)行匹配的匹配對(duì)象為圖像時(shí),相應(yīng)的匹配的模式則為該圖像的特征,如,在計(jì)算機(jī)應(yīng)用中,圖像可以通過二進(jìn)制數(shù)來描述,若要對(duì)圖像進(jìn)行模式匹配,通過分析,可將圖像中的部分圖像轉(zhuǎn)化為一段或者多段二進(jìn)制數(shù),并將所述一段或者多段二進(jìn)制數(shù)作為模式,對(duì)用來描述待匹配圖像的二進(jìn)制數(shù)進(jìn)行模式匹配,若匹配成功,輸出匹配結(jié)果。為了描述的簡(jiǎn)便,在本發(fā)明的一些具體實(shí)施例中僅描述匹配對(duì)象為文本的情況。
參見圖3,是本發(fā)明實(shí)施例提供的模式匹配方法的第一實(shí)施例的流程示意圖,進(jìn)行所述模式匹配的模式集合中的各模式分別包括各自的第一子模式和第二子模式,對(duì)匹配對(duì)象進(jìn)行所述模式匹配包括
步驟301、基于多模式匹配算法,對(duì)匹配對(duì)象根據(jù)所述模式集合進(jìn)行第一子模式的匹配;所述第一子模式的數(shù)量可為一個(gè)或多個(gè),如,計(jì)算機(jī)病毒特征碼(即模式)的數(shù)量有幾萬甚至幾十萬條,則從所述特征碼中獲取的第一子模式也可為幾萬條甚至幾十萬條。此處,若所述第一子模式的數(shù)量為多個(gè),則基于該多個(gè)第一子模式,對(duì)匹配對(duì)象進(jìn)行匹配。所述匹配對(duì)象包括文本、圖像等。當(dāng)所述模式匹配為字符串匹配時(shí),所述第一子模式則包括所述各才莫式中自首字符開始的一定長(zhǎng)度的字節(jié),所述一定長(zhǎng)度的字節(jié)可為一個(gè)或多個(gè)字節(jié),例如,才莫式集合中的一才莫式為"telephone",倘若取才莫式中自首字符開始的前5個(gè)字節(jié)
8作為第一子模式,則獲取的第一子模式為"telep";若模式集合中的某個(gè)模式的長(zhǎng)度小于5個(gè)字節(jié),則取其實(shí)際長(zhǎng)度的字節(jié)作為第一子^t式。
步驟302、基于單模式匹配算法,對(duì)經(jīng)過所述第一子模式匹配成功之后的匹配對(duì)象根據(jù)所述模式集合進(jìn)行第二子模式的匹配,并在第二子模式匹配成功后輸出匹配結(jié)果。所述第二子模式的數(shù)量可為一個(gè)或多個(gè),此處,當(dāng)所述第二子模式的數(shù)量為多個(gè)時(shí),則基于該多個(gè)第二子模式,對(duì)匹配對(duì)象進(jìn)行匹配。當(dāng)所述模式匹配為字符串匹配時(shí),該第二子模式包括相應(yīng)各模式中自所述第一子模式之后的字節(jié),還以模式"telephone"為例,若第一子模式為"telep",則第二子模式為"hone",以上舉例為模式劃分為兩段子模式的情況,是優(yōu)選的實(shí)施方式,當(dāng)然,根據(jù)上述實(shí)施方式所延伸的實(shí)施方式,如將模式劃分為三段或多段子模式的情況也在本、發(fā)明的保護(hù)范圍之內(nèi)。
實(shí)施本發(fā)明實(shí)施例提供的模式匹配方法,結(jié)合多模式匹配算法及單模式匹配算法,對(duì)匹配對(duì)象進(jìn)行模式匹配,能夠達(dá)到減少存儲(chǔ)空間和提高^莫式匹配速度的目的。
參見圖4,是本發(fā)明實(shí)施例提供的模式匹配方法的第二實(shí)施例的流程示意圖,進(jìn)行所述模式匹配的模式集合中的各模式分別包括各自的第一子模式和第二子模式,本實(shí)施例中,對(duì)匹配對(duì)象進(jìn)行所述;f莫式匹配包括
步驟401、基于多模式匹配算法,對(duì)匹配對(duì)象根據(jù)所述模式集合進(jìn)行第一子模式的匹配;所述第一子模式的數(shù)量可為一個(gè)或多個(gè),若所述模式匹配為字符串匹配,則所述第一子模式包括各模式中自首字符開始的一定長(zhǎng)度的字節(jié)。
步驟402、判斷對(duì)匹配對(duì)象根據(jù)所述模式集合進(jìn)行所述第一子模式匹配是否匹配成功;此處,若判斷結(jié)果為否,則結(jié)束。
步驟403、若判斷結(jié)果為是,則查詢是否存在與成功匹配的第一子模式相關(guān)聯(lián)的模式信息,所述模式信息包括所述第 一子模式指向第二子模式的信息;
步驟404、若查詢結(jié)果為存在與成功匹配的第一子模式相關(guān)聯(lián)的模式信息,則基于單模式匹配算法和查詢到的所述模式信息,對(duì)經(jīng)過所述第一子模式匹配成功之后的匹配對(duì)象根據(jù)所述模式集合進(jìn)行第二子模式的匹配。此處,例如,匹配對(duì)象為"telephonel24",第一子模式為"telep",第二子模式為"hone",假設(shè)對(duì)所述匹配對(duì)象進(jìn)行第一子模式匹配成功且存在與第一子模式"telep,,相關(guān)聯(lián)的模式信息,則從匹配對(duì)象中的"honel24"部分開始進(jìn)行第二子模式的匹配。此處,若查詢結(jié)果為不存在與成功匹配的第一子模式相關(guān)聯(lián)的模式信息,
則執(zhí)行步驟406,輸出第一子模式的匹配結(jié)果。以模式集合中的某一模式"her"為例,若取4莫式中自首字符開始的前5個(gè)字節(jié)作為第一子模式,因所述模式"her"的長(zhǎng)度為3個(gè)字節(jié),小于5個(gè)字節(jié),此時(shí),就可以直接將"her"作為第一子模式,相應(yīng)的,該模式"her"就不存在相關(guān)聯(lián)的第二子模式。此種情況下,基于多模式匹配算法,對(duì)匹配對(duì)象進(jìn)行第一子模式的匹配時(shí),若對(duì)匹配對(duì)象匹配成功,則輸出匹配結(jié)果,該匹配結(jié)果可為該第一子沖莫式"her"的編號(hào)。
步驟405、判斷對(duì)經(jīng)過所述第一子模式匹配成功之后的匹配對(duì)象才艮據(jù)所述模式集合進(jìn)行第二子模式匹配是否匹配成功;
步驟406、若第二子模式匹配成功,則輸出整個(gè)模式的匹配結(jié)果。此處,例如,模式"telephone",若該模式的第一子模式為"telep",第二子模式為"hone",當(dāng)對(duì)經(jīng)過第一子模式"telep"匹配成功之后的匹配對(duì)象進(jìn)行第二子模式"hone"匹配且匹配成功,則可輸出匹配結(jié)果,該匹配結(jié)果可為所述模式"telephone"的編號(hào)。
此處,若對(duì)匹配對(duì)象未匹配完畢,則對(duì)未匹配完畢的匹配對(duì)象部分進(jìn)行模式匹配,例如,匹配對(duì)象為"telephonel24",第一子模式為"telep",第二子模式為"hone",假設(shè)對(duì)所述匹配對(duì)象進(jìn)行第一子模式匹配和第二子模式匹配都匹配成功,經(jīng)判斷,匹配對(duì)象未匹配完畢,若未匹配完畢的匹配對(duì)象部分為"124",此時(shí),則對(duì)未匹配完畢的匹配對(duì)象"124"進(jìn)4亍沖莫式匹配,重復(fù)步艱《401~406,直到匹配對(duì)象匹配完畢為止。
實(shí)施本發(fā)明實(shí)施例提供的模式匹配方法,基于多模式匹配算法,對(duì)匹配對(duì)象根據(jù)模式集合進(jìn)行第一子模式的匹配;若匹配成功,并且存在與成功匹配的第一子模式相關(guān)聯(lián)的模式信息,則根據(jù)單模式匹配算法和所述模式信息,對(duì)經(jīng)過所述第 一子模式匹配成功之后的匹配對(duì)象根據(jù)模式集合進(jìn)行第二子模式的匹配,并在第二子模式匹配成功后輸出匹配結(jié)果。采用本發(fā)明實(shí)施例的上述技術(shù)方案,節(jié)省了模式匹配時(shí)所占用的存儲(chǔ)空間,提高了模式匹配速度。
參見圖5,是本發(fā)明實(shí)施例提供的匹配模板生成方法的流程示意圖,本實(shí)施例提供的匹配模板生成方法包括
步驟501、根據(jù)預(yù)先設(shè)置的規(guī)則,獲取模式集合中每個(gè)模式的第一子模式及第二子模式;此處,所述模式的數(shù)量可為一個(gè)或多個(gè),相應(yīng)的,獲取的第一子模式及第二子模式的數(shù)量分別可為一個(gè)或多個(gè)。若模式匹配為字符串匹配,所
述規(guī)則可為取模式中自首字符開始的一定長(zhǎng)度的字節(jié)作為第一子4莫式,取自 所述一定長(zhǎng)度的字節(jié)之后的字節(jié)作為第二子模式;當(dāng)所述模式為兩個(gè)以上時(shí), 則分別取各模式中自首字符開始的相同長(zhǎng)度的字節(jié)作為各自的第一子模式,取 所述各模式中自所述相同長(zhǎng)度的字節(jié)之后的字節(jié)作為各自的第二子模式。例如, 模式集合中的一模式為"telephone",倘若取模式中自首字符開始的前5個(gè)字節(jié) 作為第一子模式,則獲取的第一子模式為"telep",第二子模式為"hone",當(dāng)模 式集合中的某個(gè)模式的長(zhǎng)度小于5個(gè)字節(jié)時(shí),則取其實(shí)際的長(zhǎng)度的字節(jié)作為第 一子模式。
步驟502a、才艮據(jù)第一子^^莫式生成與多模式匹配算法相應(yīng)的第一匹配模板庫; 此處,根據(jù)需要,可以以第一子模式中的一個(gè)或多個(gè)字節(jié)為單位生成與所述多 模式匹配算法相應(yīng)的第 一 匹配it板庫,也可以以第 一子^t式中的 一個(gè)或多個(gè)比 特為單位生成與所述多^t式匹配算法相應(yīng)的第一匹配^f莫板庫。例如,才艮據(jù)第一 子模式生成與AC算法相應(yīng)的第 一匹配模板庫,即AC狀態(tài)機(jī),所述AC狀態(tài)機(jī) 包括Goto (轉(zhuǎn)移)函數(shù)、Failure (失效)函數(shù)、Output (輸出)函數(shù)。所述 Goto函數(shù)用于根據(jù)當(dāng)前狀態(tài)和一個(gè)輸入的字符映射為另一個(gè)狀態(tài);Failure函數(shù) 是用來指明當(dāng)某個(gè)模式與文本匹配不成功時(shí),應(yīng)處理的下一狀態(tài);Output函數(shù) 是用于在匹配過程中輸出已經(jīng)匹配的ii式。
步驟502b、根據(jù)第二子模式生成與單模式匹配算法相應(yīng)的第二匹配模板庫; 此處,如根據(jù)第二子模式生成與直接字符串比較算法相應(yīng)的第二匹配模板庫, 該第二匹配模板庫包括多個(gè)匹配模板, 一個(gè)匹配;f莫板可對(duì)應(yīng) 一個(gè)第二子模式, 通過所述匹配模板,可對(duì)匹配對(duì)象進(jìn)行第二子才莫式的匹配。
需要說明的是,所述步驟502a和步驟502b沒有特定的先后順序。
步驟503、建立每個(gè)模式中第一子模式與第二子模式之間的關(guān)聯(lián),并生成模 式信息,所述模式信息包括該模式的第一子模式指向第二子模式的信息。
實(shí)施本發(fā)明實(shí)施例的方法,所述與多模式匹配算法相應(yīng)的第一匹配模板庫 占用的存儲(chǔ)空間大,所述與單模式匹配算法相應(yīng)的第二匹配模板庫占用的存儲(chǔ) 空間小,本實(shí)施例的方案與根據(jù)整個(gè)模式生成與多模式匹配算法相應(yīng)的匹配模 板庫的方案相比,節(jié)省了存儲(chǔ)空間,從而提高了模式匹配速度。
參見圖6,是本發(fā)明實(shí)施例提供的模式匹配方法的第三實(shí)施例的流程示意步驟601、獲取模式集合中每個(gè)模式的第一子模式及第二子模式,此處,若 模式匹配為字符串匹配,所述第一子模式包括每個(gè)模式中自首字符開始的一定 長(zhǎng)度的字節(jié),所述第二子模式包括相應(yīng)的模式中自所述一定長(zhǎng)度的字節(jié)之后的 字節(jié),所述一定長(zhǎng)度的字節(jié)可為一個(gè)或多個(gè)字節(jié);
步驟602a、根據(jù)第一子模式生成與多模式匹配算法相應(yīng)的第一匹配模板庫; 步驟602b、根據(jù)第二子模式生成與單模式匹配算法相應(yīng)的第二匹配模板庫; 需要說明的是,所述步驟602a與步驟602b沒有特定的先后順序。 步驟603、建立每個(gè)模式中第一子模式與第二子模式之間的關(guān)聯(lián),并生成模 式信息,所述模式信息包括該模式的第一子模式指向第二子模式的信息;
步驟604、基于所述多模式匹配算法,將匹配對(duì)象與所述第一匹配模板庫中 的匹配模板進(jìn)行第 一子模式的匹配;
步驟605 、判斷匹配對(duì)象與所述第 一 匹配模板庫中的匹配模板進(jìn)行第 一子模 式匹配是否匹配成功;此處,若判斷結(jié)果為否,則結(jié)束;
步驟606、若判斷結(jié)果為第一子;^莫式匹配成功,則查詢是否存在與成功匹配 的第一子模式相關(guān)聯(lián)的模式信息;此處,若查詢結(jié)果為不存在與成功匹配的第 一子模式相關(guān)聯(lián)的模式信息,則執(zhí)行步驟609,輸出第一子模式的匹配結(jié)果。
步驟607、若查詢結(jié)果為存在與成功匹配的第一子模式相關(guān)聯(lián)的模式信息, 則根據(jù)單模式匹配算法和查詢到的所述模式信息,將經(jīng)過所述第一匹配模板庫
中的匹配模板匹配成功之后的匹配對(duì)象與所述第二匹配模板庫中的匹配模板進(jìn) 行第二子模式的匹配;
步驟608 、判斷匹配對(duì)象與所述第二匹配模板庫中的匹配模板進(jìn)行第二子模 式匹配是否匹配成功;
步驟609、若第二子模式匹配成功,則輸出整個(gè)模式的匹配結(jié)果;
此處,若對(duì)匹配對(duì)象未匹配完畢,則對(duì)未匹配完畢的匹配對(duì)象部分進(jìn)行模 式匹配,重復(fù)步驟604 609,直到匹配對(duì)象匹配完畢為止。
上述步驟601-603是匹配模板生成的方法流程,在進(jìn)行模式匹配之前,可 預(yù)先根據(jù)模式集合中的各模式生成相應(yīng)的匹配模板,但不是每次進(jìn)行模式匹配 前都需要根據(jù)模式集合中的各模式生成相應(yīng)的匹配模板,因此,在本發(fā)明實(shí)施 例中,步驟601 603也可以省去。實(shí)施本發(fā)明實(shí)施例提供的模式匹配方法,首先,根據(jù)第一子模式生成與多 模式匹配算法相應(yīng)的第 一 匹配模板庫,根據(jù)第二子模式生成與單模式匹配算法
相應(yīng)的第二匹配模板庫;然后,將匹配對(duì)象先后與所述第一匹配模板庫中的匹 配模板及所述第二匹配模板庫中的匹配模板進(jìn)行匹配,并在匹配成功后輸出匹 配結(jié)果。采用本發(fā)明實(shí)施例的上述技術(shù)方案,節(jié)省了模式匹配時(shí)所占用的存儲(chǔ) 空間,提高了模式匹配速度。
參見圖7,是本發(fā)明實(shí)施例提供的模式匹配裝置的第一實(shí)施例的組成示意 圖,如圖所示,本實(shí)施例提供的模式匹配裝置包括存儲(chǔ);漠塊71、多模式匹配才莫 塊72及單模式匹配模塊73,下面對(duì)各模塊功能作詳細(xì)說明。
存儲(chǔ)模塊71,用于存儲(chǔ)模式集合,所述模式集合中的各模式分別包括第一 子模式和第二子模式;若模式匹配為字符串匹配,所述第一子模式包括所述各 模式中自首字符開始的一定長(zhǎng)度的字節(jié),所述第二子模式包括所述各模式中自 所述一定長(zhǎng)度的字節(jié)之后的字節(jié),所述一定長(zhǎng)度的字節(jié)可為一個(gè)或多個(gè)字節(jié)。
多模式匹配模塊72,用于基于多模式匹配算法,對(duì)匹配對(duì)象根據(jù)所述模式 集合進(jìn)行第一子模式的匹配;所述第一子模式的數(shù)量可為一個(gè)或多個(gè),此處, 若所述第一子模式的數(shù)量為多個(gè),則基于該多個(gè)第一子模式,對(duì)匹配對(duì)象進(jìn)行 匹配。所述模式匹配對(duì)象包括文本、圖像等,當(dāng)所述模式匹配為字符串匹配時(shí), 該第一子模式包括各模式中自首字符開始的一定長(zhǎng)度的字節(jié),所述一定長(zhǎng)度的 字節(jié)可為一個(gè)或多個(gè)字節(jié)。例如,模式集合中的一模式為"telephone",倘若取 模式中自首字符開始的前5個(gè)字節(jié)作為第一子模式,則獲取的第一子模式為 "tdep";若模式集合中的某個(gè)模式的長(zhǎng)度小于5個(gè)字節(jié),則取其實(shí)際長(zhǎng)度的字 節(jié)作為第一子模式。
單模式匹配模塊73,用于基于單模式匹配算法,對(duì)經(jīng)過所述多模式匹配模 塊72匹配成功之后的匹配對(duì)象根據(jù)所述模式集合進(jìn)行第二子模式的匹配,并在 第二子模式匹配成功后輸出匹配結(jié)果。此處,所述匹配結(jié)果可為整個(gè)模式的匹 配結(jié)果,所述整個(gè)模式包括第一子模式和第二子模式。當(dāng)模式匹配為字符串匹 配時(shí),該第二子模式包括相應(yīng)各模式中自所述第一子模式之后的字節(jié),以模式 "telephone"為例,若第一子模式為"telep",則第二子模式為"hone",在第二 子模式"hone"匹配成功后輸出的匹配結(jié)果可為整個(gè)模式"telephone"的編號(hào)。
實(shí)施本發(fā)明實(shí)施例提供的模式匹配裝置,結(jié)合多模式匹配算法及單模式匹配算法,對(duì)匹配對(duì)象進(jìn)行模式匹配,能夠達(dá)到減少存儲(chǔ)空間和提高模式匹配速 度的目的。
參見圖8,是本發(fā)明實(shí)施例提供的模式匹配裝置的第二實(shí)施例的組成示意 圖,如圖所示,本實(shí)施例提供的模式匹配裝置包括存儲(chǔ)模塊71、獲取模塊74、 第一生成模塊75、第二生成模塊76、模式信息生成模塊77、模式信息存儲(chǔ)模塊 78、多模式匹配模塊72及單模式匹配模塊73,下面對(duì)各模塊功能以及相互關(guān)系 作詳細(xì)"i兌明。
存儲(chǔ)模塊71,用于存儲(chǔ)模式集合,所述模式集合中的各模式分別包括第一 子模式和第二子模式;
獲取模塊74,用于獲取所述模式集合中每個(gè)模式的第一子模式及第二子模 式;需要說明的是,所述模式的數(shù)量可為一個(gè)或多個(gè),相應(yīng)的,獲取的第一子 模式及第二子模式的數(shù)量分別可為一個(gè)或多個(gè)。此處,可根據(jù)預(yù)先設(shè)置的規(guī)貝'J, 獲取模式集合中每個(gè)模式的第一子模式及第二子模式;若模式匹配為字符串匹 配,所述規(guī)則可為取模式中自首字符開始的一定長(zhǎng)度的字節(jié)作為第一子模式, 取自所述一定長(zhǎng)度的字節(jié)之后的字節(jié)作為第二子模式;當(dāng)所述模式為兩個(gè)以上 時(shí),則分別取各模式中自首字符開始的相同長(zhǎng)度的字節(jié)作為各自的第一子模式, 取所述各模式中自所述相同長(zhǎng)度的字節(jié)之后的字節(jié)作為各自的第二子模式。例 如,模式集合中的一沖莫式為"telephone",倘若取模式中自首字符開始的前5個(gè) 字節(jié)作為第一子模式,則獲取的第一子模式為"telep",第二子模式為"hone", 當(dāng)模式集合中的某個(gè)模式的長(zhǎng)度小于5個(gè)字節(jié)時(shí),則取其實(shí)際的長(zhǎng)度的字節(jié)作 為第一子模式。
第一生成模塊75,用于根據(jù)第一子模式生成與所述多模式匹配算法相應(yīng)的 第一匹配模板庫;此處,根據(jù)需要,可以以所述第一子模式中的一個(gè)或多個(gè)字 節(jié)為單位生成與所述多^f莫式匹配算法相應(yīng)的第一匹配沖莫板庫,也可以以所述第 一子模式中的一個(gè)或多個(gè)比特為單位生成與所述多模式匹配算法相應(yīng)的第 一 匹 配模板庫。例如,根據(jù)第一子模式生成與AC算法相應(yīng)的第一匹配模板庫,即 AC狀態(tài)機(jī),通過所述AC狀態(tài)機(jī)可對(duì)匹配對(duì)象進(jìn)行第一子模式的匹配。
第二生成模塊76,用于根據(jù)第二子模式生成與所述單模式匹配算法相應(yīng)的 第二匹配模板庫;此處,如根據(jù)第二子模式生成與直接字符串比較算法相應(yīng)的 第二匹配模板庫,該第二匹配模板庫包括多個(gè)匹配模板, 一個(gè)匹配模板可對(duì)應(yīng)一個(gè)第二子模式,通過所述匹配模板,可對(duì)匹配對(duì)象進(jìn)行第二子模式的匹配。
模式信息生成模塊77,用于建立每個(gè)模式中第一子模式與所述第二子模式 之間的關(guān)聯(lián),并生成模式信息,所述模式信息包括該模式的第一子模式指向第 二子模式的信息。
模式信息存儲(chǔ)模塊78,用于存儲(chǔ)模式信息生成模塊77生成的模式信息。 多模式匹配模塊72,用于基于多模式匹配算法,將匹配對(duì)象與所述第一生
成模塊75生成的第一匹配模板庫中的匹配模板進(jìn)行第一子模式的匹配。
單模式匹配模塊73,用于基于單模式匹配算法,將經(jīng)過所述多模式匹配模
塊72匹配成功之后的匹配對(duì)象與所述第二生成模塊76生成的第二匹配模板庫
中的匹配才莫板進(jìn)行第二子模式的匹配,并在第二子模式匹配成功后輸出匹配結(jié)果。
具體地,所述單模式匹配模塊73包括
查詢單元731,用于當(dāng)接收到所述多模式匹配模塊72發(fā)送的匹配成功的消 息后,查詢是否存在與成功匹配的第 一子模式相關(guān)聯(lián)的模式信息;
匹配單元732,用于當(dāng)所述查詢單元731的查詢結(jié)果為存在與成功匹配的第 一子模式相關(guān)聯(lián)的模式信息時(shí),根據(jù)單模式匹配算法和查詢到的所述模式信息, 對(duì)經(jīng)過所述多模式匹配模塊72匹配成功之后的匹配對(duì)象與所述第二生成模塊76 生成的第二匹配模板庫中的匹配模板進(jìn)行匹配,并在所述匹配模板匹配成功后 輸出匹配結(jié)果。此處,所述匹配結(jié)果可為整個(gè)模式的匹配結(jié)果,所述整個(gè)模式 包括第 一子模式及第二子模式。
此處,若所述查詢單元731查詢結(jié)果為不存在與成功匹配的第一子模式相 關(guān)聯(lián)的模式信息,則輸出第一子模式的匹配結(jié)果。以模式集合中的某一模式"her" 為例,若取沖莫式中自首字符開始的前5個(gè)字節(jié)作為第一子模式,因所述模式"her" 的長(zhǎng)度為3個(gè)字節(jié),所述長(zhǎng)度小于5個(gè)字節(jié),此時(shí),就可以直接將"her"作為 第一子模式,相應(yīng)的,該模式"her"就不存在相關(guān)聯(lián)的第二子模式。此種情況 下,在進(jìn)行第一子模式的匹配時(shí),若對(duì)匹配對(duì)象匹配成功,可直接輸出匹配結(jié) 果。
參見圖9,是本發(fā)明實(shí)施例提供的由模式集合{telephone, telepathy, tech, elephanO生成的匹配模板示意圖,如圖所示,所述匹配模板示意圖包括第一匹配 模板庫即AC狀態(tài)機(jī)91及第二匹配模板庫92。下面以才莫式集合(telephone, telepathy, tech, elephanO為例,詳細(xì)闡述匹配 模板生成及模式匹配的過程。
此處,若取模式集合中各模式中自首字符開始的前5個(gè)字節(jié)作為第一子模 式,取所述5個(gè)字節(jié)之后的字節(jié)作為第二子模式,則獲取的第一子模式集合為 {telep, tech, eleph},需要說明的是,模式"telephone"與模式"telepathy"的 前5個(gè)字節(jié)相同,他們的第一子模式都為"telep";模式"tech"的長(zhǎng)度為4個(gè) 字節(jié),小于5個(gè)字節(jié),則取其實(shí)際長(zhǎng)度的字節(jié)"tech"作為第一子模式;"elephant" 的第一子模式為"eleph"。根據(jù)本實(shí)施例的模式集合獲取的第二子模式集合為 {hone, athy, ant},此處,需要說明的是,所述才莫式集合{telephone, telepathy, tech, elephant}中的模式"tech"在本實(shí)施例中不存在第二子模式。
獲取第一子模式集合{telep, tech, eleph}及第二子模式集合{hone, athy, ant} 之后,可根據(jù)所述第一子模式集合中的子模式生成與所述多模式匹配算法相應(yīng) 的第一匹配模板庫,例如,以第一子模式中的一個(gè)字節(jié)為單位,生成的與AC 算法相應(yīng)的第一匹配模板庫為AC狀態(tài)機(jī)91,所述AC狀態(tài)機(jī)91包括Goto(轉(zhuǎn) 移)函數(shù)9U、 Failure (失效)函數(shù)912、 Output (輸出)函數(shù)913;根據(jù)第二子 模式集合中的子模式可生成與直接字符串比較算法相應(yīng)的第二匹配才莫板庫92, 該第二匹配模板庫92可包括多個(gè)匹配4莫板, 一個(gè)匹配才莫板可對(duì)應(yīng)一個(gè)第二子模 式,如匹配模板921對(duì)應(yīng)第二子模式"hone",匹配模板922對(duì)應(yīng)第二子模式 "athy",匹配模板923對(duì)應(yīng)第二子才莫式"ant",通過所述匹配模板,可對(duì)匹配 對(duì)象進(jìn)行第二子模式的匹配。
建立所述第一子模式集合{telep, tech, eleph}中的各第一子模式與第二子模 式集合(hone, athy, ant}中的各第二子模式之間的關(guān)聯(lián),并生成模式信息,具體 為建立第一子模式"telep"與所述第二子模式"hone"及"athy"的指針關(guān)聯(lián), 生成由"telep"分別指向"hone"及"athy"的模式信息;建立"eleph"與"ant" 的指針關(guān)聯(lián),生成由"eleph"指向"ant"的模式信息。
當(dāng)輸入匹配對(duì)象時(shí),將所述匹配對(duì)象與所述AC狀態(tài)機(jī)91進(jìn)行第一子模式 的匹配;然后,判斷第一子模式匹配是否匹配成功,如當(dāng)AC狀態(tài)機(jī)91中Goto 函數(shù)911的狀態(tài)跳轉(zhuǎn)到"5"時(shí),經(jīng)判斷對(duì)匹配對(duì)象進(jìn)行第一子模式"telep"匹 配成功;接著,查詢是否存在與所述第一子模式"telep"相關(guān)聯(lián)的模式信息, 經(jīng)查詢存在"telep"分別指向"hone"及"athy"的模式信息,則根據(jù)單模式匹配算法和查詢到的所述模式信息,將經(jīng)過所述第一子模式"telep"匹配成功之 后的匹配對(duì)象分別和第二匹配模板庫92中的匹配才莫板921及922進(jìn)行第二子模 式"hone"及"athy"的匹配,若匹配成功,則輸出匹配結(jié)果,所述匹配結(jié)果可 以是才莫式"telephone"或"telepathy"的編號(hào);若匹配不成功且匹配對(duì)象未匹配 完畢,則繼續(xù)對(duì)匹配對(duì)象中未進(jìn)行匹配的文本片段進(jìn)行第一子模式的匹配,如 當(dāng)前狀態(tài)為"5"時(shí),輸入一個(gè)字符"t",匹配失敗,此時(shí)調(diào)用Failure函數(shù)912 進(jìn)行處理,即當(dāng)狀態(tài)為"5"時(shí),其對(duì)應(yīng)處理的下一狀態(tài)為"11",當(dāng)跳轉(zhuǎn)到狀 態(tài)"11"后,再調(diào)用Goto函數(shù)911繼續(xù)進(jìn)行處理。若以第一子模式"tech"為 例,當(dāng)狀態(tài)跳轉(zhuǎn)到"7"時(shí),經(jīng)查詢,不存在與所述第一子模式"tech"相關(guān)聯(lián) 的模式信息,則不需要進(jìn)行第二子模式的匹配,直接調(diào)用Output函數(shù)913輸出 第一子模式的匹配結(jié)果,該匹配結(jié)果可為"tech"的編號(hào)。
在進(jìn)行所述模式匹配的過程中,查詢匹配對(duì)象是否已匹配完畢;若查詢結(jié) 果為匹配對(duì)象未匹配完畢,則繼續(xù)對(duì)匹配對(duì)象中未進(jìn)行匹配的文本片段進(jìn)行模 式匹配,直到匹配對(duì)象匹配完畢為止。
實(shí)施本發(fā)明實(shí)施例,首先,根據(jù)第一子模式生成與所述多模式匹配算法相 應(yīng)的第一匹配模板庫,根據(jù)第二子模式生成與所述單模式匹配算法相應(yīng)的第二 匹配模板庫;然后,將匹配對(duì)象先后與所述第一匹配模板庫中的匹配才莫板及所 述第二匹配模板庫中的匹配模板進(jìn)行匹配,并在匹配成功后輸出匹配結(jié)果。采
用本發(fā)明實(shí)施例的上述技術(shù)方案,節(jié)省了模式匹配時(shí)所占用的存儲(chǔ)空間,提高 沖莫式匹配速度。
本發(fā)明上述實(shí)施例所提到的多模式匹配算法不限于AC算法,還可以使用其 他的多模式匹配算法如Commentz-Walter算法、Wu-Manbers算法等;同樣, 本發(fā)明實(shí)施例所提到的單模式匹配算法也不限于直接字符串比較算法,還可以 是BM ( R,Boyert&J.Moore )、 KMP ( Kunth畫Moms-Pratt)算法等。
通過以上的實(shí)施方式的描述,所屬領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā) 明可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件,但 很多情況下前者是更佳的實(shí)施方式。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì) 上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算 機(jī)軟件產(chǎn)品存儲(chǔ)在可讀取的存儲(chǔ)介質(zhì)中,如計(jì)算機(jī)的軟盤,硬盤或光盤等,包 括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)
17設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。
以上所揭露的僅為本發(fā)明較佳實(shí)施例而已,當(dāng)然不能以此來限定本發(fā)明之 權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。
權(quán)利要求
1、一種模式匹配方法,其特征在于,進(jìn)行所述模式匹配的模式集合中的各模式分別包括各自的第一子模式和第二子模式,對(duì)匹配對(duì)象進(jìn)行所述模式匹配包括基于多模式匹配算法,對(duì)匹配對(duì)象根據(jù)所述模式集合進(jìn)行第一子模式的匹配;基于單模式匹配算法,對(duì)經(jīng)過所述第一子模式匹配成功之后的匹配對(duì)象根據(jù)所述模式集合進(jìn)行第二子模式的匹配,并在第二子模式匹配成功后輸出匹配結(jié)果。
2、 根據(jù)權(quán)利要求1所述的模式匹配方法,其特征在于,所述基于多模式匹 配算法,對(duì)匹配對(duì)象根據(jù)所述模式集合進(jìn)行第一子模式的匹配的步驟之前還包 括獲取所述模式集合中每個(gè)模式的第一子模式及第二子模式;根據(jù)第 一子模式生成與所述多模式匹配算法相應(yīng)的第 一 匹配模板庫;根據(jù)第二子模式生成與所述單模式匹配算法相應(yīng)的第二匹配模板庫;建立每個(gè)模式中第一子模式與第二子模式之間的關(guān)聯(lián),并生成模式信息, 所述模式信息包括該模式的第 一子模式指向第二子模式的信息。
3、 根據(jù)權(quán)利要求2所述的模式匹配方法,其特征在于,所述基于多模式匹 配算法,對(duì)匹配對(duì)象根據(jù)所述模式集合進(jìn)行第一子模式的匹配具體包括基于多模式匹配算法,將所述匹配對(duì)象與所述第 一 匹配^jt板庫中的匹配模 4反進(jìn)4亍匹配。
4、 根據(jù)權(quán)利要求2或3所述的模式匹配方法,其特征在于,所述基于單模 式匹配算法,對(duì)經(jīng)過所述第 一子模式匹配成功之后的匹配對(duì)象根據(jù)所述模式集 合進(jìn)行第二子模式的匹配的步驟包括查詢是否存在與成功匹配的第 一子才莫式相關(guān)聯(lián)的模式信息; 若查詢結(jié)果為是,則根據(jù)單模式匹配算法和查詢到的所述^t式信息,將經(jīng)過所述第 一子模式匹配成功之后的匹配對(duì)象與所述第二匹配模板庫中的匹配模一反進(jìn)4亍匹配。
5、 根據(jù)權(quán)利要求1-3中任意一項(xiàng)所述的模式匹配方法,其特征在于所述模式匹配為字符串匹配,所述第一子模式包括所述各模式中自首字符開始的一定長(zhǎng)度的字節(jié),所述第二子模式包括所述各模式中自所述一定長(zhǎng)度的字節(jié)之后的字節(jié),所述一定長(zhǎng)度的字節(jié)可為一個(gè)或多個(gè)字節(jié)。
6、 根據(jù)權(quán)利要求5所述的模式匹配方法,其特征在于,所述進(jìn)行所述模式匹配的模式集合中的各模式的第 一子模式的長(zhǎng)度相同。
7、 根據(jù)權(quán)利要求1-3中任意一項(xiàng)所述的模式匹配方法,其特征在于所述多模式匹配算法為AC算法,所述單模式匹配算法為直接字符串比較算法。
8、 一種模式匹配裝置,包括存儲(chǔ)模塊,用于存儲(chǔ)模式集合,所述模式集合中的各模式分別包括第一子模式和第二子模式;多模式匹配模塊,用于基于多模式匹配算法,對(duì)匹配對(duì)象根據(jù)所述模式集合進(jìn)行第一子模式的匹配;單模式匹配模塊,用于基于單模式匹配算法,對(duì)經(jīng)過所述第一子模式匹配成功之后的匹配對(duì)象根據(jù)所述模式集合進(jìn)行第二子模式的匹配,并在第二子模式匹配成功后輸出匹配結(jié)果。
9、 根據(jù)權(quán)利要求8所述的模式匹配裝置,其特征在于,所述模式匹配裝置還包括獲取模塊,用于獲取所述模式集合中每個(gè)模式的第一子模式及第二子模式;第一生成模塊,用于根據(jù)第一子才莫式生成與所述多模式匹配算法相應(yīng)的第一匹配模板庫;第二生成模塊,用于根據(jù)第二子模式生成與所述單模式匹配算法相應(yīng)的第二匹配模板庫;模式信息生成模塊,用于建立每個(gè)模式中第一子模式與第二子模式之間的關(guān)聯(lián),并生成模式信息,所述模式信息包括該模式的第一子模式指向第二子模式的信息;模式信息存儲(chǔ)模塊,用于存儲(chǔ)模式信息生成模塊生成的模式信息。
10、 根據(jù)權(quán)利要求9所述的模式匹配裝置,其特征在于,所述多模式匹配模塊基于多模式匹配算法,將所述匹配對(duì)象與所述第一生成模塊生成的第一匹配模板庫中的匹配模板進(jìn)行匹配。
11、 根據(jù)權(quán)利要求9或IO所述的模式匹配裝置,其特征在于,所述單模式匹配模塊包括查詢單元,用于當(dāng)接收到所述多模式匹配模塊發(fā)送的匹配成功的消息后,查詢是否存在與成功匹配的第一子模式相關(guān)聯(lián)的模式信息;匹配單元,用于當(dāng)所述查詢單元的查詢結(jié)果為是時(shí),根據(jù)單模式匹配算法和查詢到的所述模式信息,對(duì)經(jīng)過所述多模式匹配模塊匹配成功之后的匹配對(duì)象與所述第二生成模塊生成的第二匹配模板庫中的匹配模板進(jìn)行匹配,并在所述匹配4莫板匹配成功后輸出匹配結(jié)果。
12、 根據(jù)權(quán)利要求8-10中任意一項(xiàng)所述的模式匹配裝置,其特征在于所述模式匹配為字符串匹配,所述第一子模式包括所述各模式中自首字符開始的一定長(zhǎng)度的字節(jié),所述第二子模式包括所述各模式中自所述一定長(zhǎng)度的字節(jié)之后的字節(jié),所述一定長(zhǎng)度的字節(jié)可為一個(gè)或多個(gè)字節(jié)。
全文摘要
本發(fā)明實(shí)施例提供了一種模式匹配方法,進(jìn)行所述模式匹配的模式集合中的各模式分別包括各自的第一子模式和第二子模式,對(duì)匹配對(duì)象進(jìn)行所述模式匹配包括基于多模式匹配算法,對(duì)匹配對(duì)象根據(jù)所述模式集合進(jìn)行第一子模式的匹配;基于單模式匹配算法,對(duì)經(jīng)過所述第一子模式匹配成功之后的匹配對(duì)象根據(jù)所述模式集合進(jìn)行第二子模式的匹配,并輸出匹配結(jié)果。相應(yīng)的,本發(fā)明實(shí)施例還提供了一種模式匹配裝置,實(shí)施本發(fā)明實(shí)施例的方法及裝置,結(jié)合多模式匹配算法及單模式匹配算法,對(duì)匹配對(duì)象進(jìn)行模式匹配,克服了現(xiàn)有技術(shù)采用多模式匹配算法進(jìn)行模式匹配帶來的模式匹配占用的存儲(chǔ)空間大、匹配速度低的問題,實(shí)現(xiàn)了節(jié)省存儲(chǔ)空間和提高模式匹配速度的目的。
文檔編號(hào)G06F7/02GK101685502SQ20081019872
公開日2010年3月31日 申請(qǐng)日期2008年9月24日 優(yōu)先權(quán)日2008年9月24日
發(fā)明者洪 周, 胡新宇, 建 陳 申請(qǐng)人:華為技術(shù)有限公司