日韩成人黄色,透逼一级毛片,狠狠躁天天躁中文字幕,久久久久久亚洲精品不卡,在线看国产美女毛片2019,黄片www.www,一级黄色毛a视频直播

正則表達(dá)式匹配方法、裝置、設(shè)備、存儲介質(zhì)及程序產(chǎn)品與流程

文檔序號:39717855發(fā)布日期:2024-10-22 13:04閱讀:2來源:國知局
正則表達(dá)式匹配方法、裝置、設(shè)備、存儲介質(zhì)及程序產(chǎn)品與流程

本技術(shù)屬于互聯(lián)網(wǎng),尤其涉及一種正則表達(dá)式匹配方法、裝置、設(shè)備、存儲介質(zhì)及程序產(chǎn)品。


背景技術(shù):

1、現(xiàn)有的用于文本搜索以及網(wǎng)絡(luò)數(shù)據(jù)流的規(guī)則匹配技術(shù)主要是基于正則表達(dá)式的自動機(jī)引擎技術(shù),其核心理論基礎(chǔ)為形式化語言與自動機(jī)理論中正則表達(dá)式與自動機(jī)的等價性原理。主流實(shí)現(xiàn)方法為依據(jù)正則文法先將正則表達(dá)式解析為抽象語法樹(abstractsyntax?tree,ast),再根據(jù)抽象語法樹構(gòu)造nfa(非確定型有窮自動機(jī),non-deterministicfinite?automata)/dfa(確定型有窮自動機(jī),deterministic?finite?automata)自動機(jī)引擎進(jìn)行正則表達(dá)式的匹配。此類正則表達(dá)式匹配方案在復(fù)雜重復(fù)語法等復(fù)雜正則語法場景下的匹配效率會嚴(yán)重下降。并且,上述方案實(shí)現(xiàn)主要是基于單一的自動機(jī)引擎進(jìn)行實(shí)現(xiàn),針對不同形式的語法規(guī)則缺乏有效的針對性優(yōu)化?;诖?,業(yè)界仍然亟待一種新型的用戶正則表達(dá)式匹配方案,以在復(fù)雜語法規(guī)則場景下仍能夠?qū)崿F(xiàn)對輸入語料的快速正則表達(dá)式匹配。


技術(shù)實(shí)現(xiàn)思路

1、本技術(shù)實(shí)施例提供一種正則表達(dá)式匹配方法、裝置、設(shè)備、存儲介質(zhì)及程序產(chǎn)品,能夠更為快速、準(zhǔn)確地實(shí)現(xiàn)正則表達(dá)式匹配。

2、第一方面,本技術(shù)實(shí)施例提供一種正則表達(dá)式匹配方法,該正則表達(dá)式匹配方法包括:

3、基于預(yù)設(shè)字符串集合,從待匹配語料中提取出n個目標(biāo)字符串,n為正整數(shù);預(yù)設(shè)字符串集合包括n個目標(biāo)字符串,預(yù)設(shè)字符串集合預(yù)先基于原始非確定型有窮自動機(jī)nfa狀態(tài)轉(zhuǎn)移表確定得到;原始nfa狀態(tài)轉(zhuǎn)移表預(yù)先基于正則表達(dá)式集合構(gòu)建得到;

4、基于與n個目標(biāo)字符串中各個目標(biāo)字符串對應(yīng)的局部狀態(tài)轉(zhuǎn)移表,生成與待匹配預(yù)料對應(yīng)的目標(biāo)狀態(tài)轉(zhuǎn)移表;

5、基于目標(biāo)狀態(tài)轉(zhuǎn)移表,對待匹配語料進(jìn)行正則表達(dá)式匹配,得到待匹配預(yù)料的正則表達(dá)式匹配結(jié)果;

6、其中,局部狀態(tài)轉(zhuǎn)移表為確定型有窮自動機(jī)dfa狀態(tài)轉(zhuǎn)移表或者nfa狀態(tài)轉(zhuǎn)移表;局部狀態(tài)轉(zhuǎn)移表基于原始nfa狀態(tài)轉(zhuǎn)移表壓縮得到。

7、在一些可能的實(shí)施方式中,在基于與n個目標(biāo)字符串中各個目標(biāo)字符串對應(yīng)的局部狀態(tài)轉(zhuǎn)移表,生成與待匹配預(yù)料對應(yīng)的目標(biāo)狀態(tài)轉(zhuǎn)移表之前,該正則表達(dá)式匹配方法還包括:

8、基于原始nfa狀態(tài)轉(zhuǎn)移表,確定第一目標(biāo)字符串的第一有效運(yùn)行路徑;第一目標(biāo)字符串為n個目標(biāo)字符串中的任一目標(biāo)字符串;

9、將第一有效運(yùn)行路徑確定為第一目標(biāo)字符串對應(yīng)的局部狀態(tài)轉(zhuǎn)移表。

10、在一些可能的實(shí)施方式中,基于原始nfa狀態(tài)轉(zhuǎn)移表,確定第一目標(biāo)字符串的第一有效運(yùn)行路徑,包括:

11、將第一目標(biāo)字符串在目標(biāo)原始狀態(tài)轉(zhuǎn)移表中對應(yīng)的狀態(tài)標(biāo)記為預(yù)激活狀態(tài);目標(biāo)原始狀態(tài)轉(zhuǎn)移表為原始nfa狀態(tài)轉(zhuǎn)移表,或者,基于原始nfa狀態(tài)轉(zhuǎn)移表轉(zhuǎn)移得到的dfa狀態(tài)轉(zhuǎn)移表;

12、將目標(biāo)原始狀態(tài)轉(zhuǎn)移表中通往預(yù)激活狀態(tài)的起始狀態(tài)的路徑、以及由預(yù)激活狀態(tài)的結(jié)束狀態(tài)出發(fā)可達(dá)的路徑標(biāo)記為第一有效運(yùn)行路徑。

13、在一些可能的實(shí)施方式中,基于預(yù)設(shè)字符串集合,從待匹配語料中提取出n個目標(biāo)字符串,包括:

14、基于預(yù)設(shè)字符串集合,利用中央處理器的單指令多數(shù)據(jù)流simd指令集從待匹配語料中提取出n個目標(biāo)字符串。

15、在一些可能的實(shí)施方式中,目標(biāo)字符串為連續(xù)的、且所包含字符的數(shù)量不超過預(yù)設(shè)閾值的字符串。

16、在一些可能的實(shí)施方式中,在基于預(yù)設(shè)字符串集合,從待匹配語料中提取出n個目標(biāo)字符串之前,該正則表達(dá)式匹配方法還包括:

17、基于正則表達(dá)式集合,構(gòu)建抽象語法樹;

18、基于抽象語法樹,構(gòu)建原始nfa狀態(tài)轉(zhuǎn)移表。

19、在一些可能的實(shí)施方式中,原始nfa狀態(tài)轉(zhuǎn)移表中包括m個重復(fù)子節(jié)點(diǎn),m為非負(fù)整數(shù);m個重復(fù)子節(jié)點(diǎn)中的任一重復(fù)子節(jié)點(diǎn)包含一個子nfa狀態(tài)轉(zhuǎn)移表;基于抽象語法樹,構(gòu)建原始nfa狀態(tài)轉(zhuǎn)移表,包括:

20、分別將m個不同的目標(biāo)正則表達(dá)式中的重復(fù)語法部分構(gòu)建為與m個重復(fù)子節(jié)點(diǎn)一一對應(yīng)的子nfa狀態(tài)轉(zhuǎn)移表;目標(biāo)正則表達(dá)式為正則表達(dá)式集合中包括重復(fù)語法的正則表達(dá)式。

21、在一些可能的實(shí)施方式中,在基于抽象語法樹,構(gòu)建原始nfa狀態(tài)轉(zhuǎn)移表之后,該正則表達(dá)式匹配方法還包括:

22、通過對目標(biāo)原始狀態(tài)轉(zhuǎn)移表進(jìn)行圖分析,提取得到目標(biāo)原始狀態(tài)轉(zhuǎn)移表中的連續(xù)確定字符串;目標(biāo)原始狀態(tài)轉(zhuǎn)移表為原始nfa狀態(tài)轉(zhuǎn)移表,或者,基于原始nfa狀態(tài)轉(zhuǎn)移表轉(zhuǎn)移得到的dfa狀態(tài)轉(zhuǎn)移表;

23、基于目標(biāo)原始狀態(tài)轉(zhuǎn)移表中的連續(xù)確定字符串,生成預(yù)設(shè)字符串集合。

24、在一些可能的實(shí)施方式中,預(yù)設(shè)字符串集合包括第一字符串子集,以及與k個目標(biāo)重復(fù)子節(jié)點(diǎn)一一對應(yīng)的k個第二字符串子集;m個重復(fù)子節(jié)點(diǎn)中包括k個目標(biāo)重復(fù)子節(jié)點(diǎn),目標(biāo)重復(fù)子節(jié)點(diǎn)所包含的子nfa狀態(tài)轉(zhuǎn)移表用于匹配連續(xù)確定字符串。

25、基于相同的發(fā)明構(gòu)思,第二方面,本技術(shù)實(shí)施例提供了一種正則表達(dá)式匹配裝置,該正則表達(dá)式匹配裝置包括:

26、第一提取模塊,用于基于預(yù)設(shè)字符串集合,從待匹配語料中提取出n個目標(biāo)字符串,n為正整數(shù);預(yù)設(shè)字符串集合包括n個目標(biāo)字符串,預(yù)設(shè)字符串集合預(yù)先基于原始非確定型有窮自動機(jī)nfa狀態(tài)轉(zhuǎn)移表確定得到;原始nfa狀態(tài)轉(zhuǎn)移表預(yù)先基于正則表達(dá)式集合構(gòu)建得到;

27、第一生成模塊,用于基于與n個目標(biāo)字符串中各個目標(biāo)字符串對應(yīng)的局部狀態(tài)轉(zhuǎn)移表,生成與待匹配預(yù)料對應(yīng)的目標(biāo)狀態(tài)轉(zhuǎn)移表;

28、第一得到模塊,用于基于目標(biāo)狀態(tài)轉(zhuǎn)移表,對待匹配語料進(jìn)行正則表達(dá)式匹配,得到待匹配預(yù)料的正則表達(dá)式匹配結(jié)果;

29、其中,局部狀態(tài)轉(zhuǎn)移表為確定型有窮自動機(jī)dfa狀態(tài)轉(zhuǎn)移表或者nfa狀態(tài)轉(zhuǎn)移表;局部狀態(tài)轉(zhuǎn)移表基于原始nfa狀態(tài)轉(zhuǎn)移表壓縮得到。

30、第三方面,本技術(shù)實(shí)施例提供了一種正則表達(dá)式匹配設(shè)備,該正則表達(dá)式匹配設(shè)備包括:

31、處理器以及存儲有計算機(jī)程序指令的存儲器;

32、所述處理器執(zhí)行所述計算機(jī)程序指令時實(shí)現(xiàn)如上述本技術(shù)實(shí)施例中任意一項(xiàng)提供的正則表達(dá)式匹配方法。

33、第四方面,本技術(shù)實(shí)施例提供了一種計算機(jī)存儲介質(zhì),該計算機(jī)可讀存儲介質(zhì)上存儲有計算機(jī)程序指令,所述計算機(jī)程序指令被處理器執(zhí)行時實(shí)現(xiàn)如上述本技術(shù)實(shí)施例中任意一項(xiàng)提供的正則表達(dá)式匹配方法。

34、第五方面,本技術(shù)實(shí)施例提供了一種計算機(jī)程序產(chǎn)品,計算機(jī)程序產(chǎn)品中的指令由電子設(shè)備的處理器執(zhí)行時,使得所述電子設(shè)備執(zhí)行如上述本技術(shù)實(shí)施例中任意一項(xiàng)提供的正則表達(dá)式匹配方法。

35、本技術(shù)實(shí)施例提供的一種正則表達(dá)式匹配方法、裝置、設(shè)備、存儲介質(zhì)及程序產(chǎn)品,通過利用預(yù)設(shè)字符串集合從待匹配語料中提取出n個目標(biāo)字符串,該預(yù)設(shè)字符串集合預(yù)先基于原始nfa狀態(tài)轉(zhuǎn)移表確定得到。然后,再基于與n個目標(biāo)字符串中各個目標(biāo)字符串對應(yīng)的局部狀態(tài)轉(zhuǎn)移表,生成與待匹配預(yù)料對應(yīng)的目標(biāo)狀態(tài)轉(zhuǎn)移表,該局部狀態(tài)轉(zhuǎn)移表基于原始nfa狀態(tài)轉(zhuǎn)移表壓縮得到。如此,基于生成的目標(biāo)狀態(tài)轉(zhuǎn)移表來對待匹配語料進(jìn)行正則表達(dá)式匹配,能夠快速匹配得到待匹配預(yù)料的正則表達(dá)式匹配結(jié)果。

36、通過上述描述可知,本技術(shù)實(shí)施例的一種正則表達(dá)式匹配方法、裝置、設(shè)備、存儲介質(zhì)及程序產(chǎn)品,通過提取待匹配語料的字符串特征,以確定待匹配語料中字符串對應(yīng)的壓縮后的局部狀態(tài)轉(zhuǎn)移表,并將局部狀態(tài)轉(zhuǎn)移表合并生成得到與待匹配語料對應(yīng)的目標(biāo)狀態(tài)轉(zhuǎn)移表,即相當(dāng)于對原始的nfa狀態(tài)轉(zhuǎn)移表先進(jìn)行動態(tài)壓縮簡化后再運(yùn)行自動機(jī)進(jìn)行正則規(guī)則的匹配,可有效降低在大量規(guī)則場景下自動機(jī)在無效狀態(tài)上跳轉(zhuǎn)的運(yùn)行時開銷,大幅提高自動機(jī)的運(yùn)行時性能,從而能夠更為快速、準(zhǔn)確地實(shí)現(xiàn)正則表達(dá)式匹配。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1