青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆-19  評(píng)論-21  文章-0  trackbacks-0
一. 簡(jiǎn)介

    該正則表達(dá)式暫時(shí)能識(shí)別 *,|,(,)等特殊符號(hào),如(a|b)*abc。不過(guò)擴(kuò)展到其他符號(hào)(如?)也相對(duì)比較容易,修改NFA中的構(gòu)建規(guī)則即可。

二. 引擎的構(gòu)建

    該正則表達(dá)式引擎的構(gòu)建以《Compilers Principles,Techniques & Tools》3.7節(jié)為依據(jù),暫時(shí)只能識(shí)別*,|,(,)這幾個(gè)特殊的字符,其工作過(guò)程為:構(gòu)建NFA -> 根據(jù)NFA構(gòu)建DFA -> 用DFA匹配。

1. 構(gòu)建NFA
該NFA的構(gòu)建以2條基本規(guī)則和3條組合規(guī)則為基礎(chǔ),采用歸納的思想構(gòu)建而成。
1)2條基本的規(guī)則是:
a. 以一個(gè)空值ε構(gòu)建一個(gè)NFA

b. 以一個(gè)字符a構(gòu)建一個(gè)NFA

2) 3條組合規(guī)則是:
a. r = s | t (其中s和t都是NFA)

b. r = s t(其中s和t都是NFA)

c. r = s *(其中s為NFA)

3) 如果需要識(shí)別如”?”等特殊符號(hào),則可再加一些組合規(guī)則。

在具體的程序中,可以以下面的BNF為結(jié)構(gòu)來(lái)實(shí)現(xiàn)。(具體見(jiàn)源程序regexp.cpp)

-> r '|' s | r
-> s t | s
-> a '*' | a
-> token | '(' r ')' | ε   

2. 構(gòu)建DFA
主要是求ε閉包的過(guò)程,從一個(gè)集合的ε閉包轉(zhuǎn)移到一個(gè)集合的ε閉包。
以a*c為例,其NFA圖如下所示(用dot畫(huà)的)

為例:
起始結(jié)點(diǎn)3的ε閉包集為 A = {3,1,4}
A遇上字母a的轉(zhuǎn)移為MOV(A,a) = { 2 },其ε閉包集為B = { 2,1,4 }
A遇上字母c的轉(zhuǎn)移為MOV(A,c) = { 6 },其ε閉包集為B = { 6 }
同理可求出其他轉(zhuǎn)移集合,最后得到的DFA如下所示:

3. 匹配
每匹配成功一個(gè)字符則DFA移動(dòng)到下個(gè)相應(yīng)的結(jié)點(diǎn)。

三. 改進(jìn)

1. 如龍書(shū)中所說(shuō),有時(shí)候模擬NFA而不是直接構(gòu)建DFA可能達(dá)到更好的效果。
2. 每次匹配不成功都需要回溯,這個(gè)地方也可以借鑒KMP算法(不過(guò)KMP對(duì)此好像有點(diǎn)不適用)
3. 其他改進(jìn)方法可以看看《柔性字符串匹配》和龍書(shū)《Compilers Principles,Techniques & Tools》3.7節(jié)。

四. 代碼下載

svn checkout http://regexp.googlecode.com/svn/trunk/ regexp-read-only

regexp.rar
posted on 2010-06-17 20:50 hex108 閱讀(732) 評(píng)論(2)  編輯 收藏 引用 所屬分類: Program

評(píng)論:
# re: 構(gòu)建正則表達(dá)式引擎 2010-06-18 18:23 | 木頭奎
發(fā)現(xiàn)一處代碼問(wèn)題:
NFA *construct_nfa_and(NFA *s,NFA *t)函數(shù)體里面,
delete( t->get_head() ); //釋放t的頭結(jié)點(diǎn)
這句話
應(yīng)該放到s->set_tail( t->get_tail() );的后面去

VC6下測(cè)試發(fā)現(xiàn)的。  回復(fù)  更多評(píng)論
  
# re: 構(gòu)建正則表達(dá)式引擎 2010-06-18 21:01 | hex108
@木頭奎
謝謝! 剛改正了呵  回復(fù)  更多評(píng)論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲午夜在线视频| 亚洲精品免费电影| 欧美日韩你懂的| 亚洲欧洲日产国产综合网| 亚洲影视九九影院在线观看| 国产精品亚发布| 久久露脸国产精品| 日韩视频中文字幕| 欧美一区2区视频在线观看 | 欧美一二区视频| 女人天堂亚洲aⅴ在线观看| 一区二区欧美日韩| 国产一区在线播放| 欧美连裤袜在线视频| 亚洲欧美一区二区三区在线 | 国产一区二区三区在线观看精品| 玖玖视频精品| 亚洲国产精品久久久久秋霞蜜臀| 亚洲欧美日韩在线一区| 国产亚洲一区二区三区在线观看 | 欧美日韩一级大片网址| 久久精品国产v日韩v亚洲 | 欧美在线观看一区二区| 亚洲欧洲免费视频| 久久久精品免费视频| 日韩一级不卡| 尤物视频一区二区| 国产精品永久| 欧美日韩一区二区免费在线观看| 欧美综合77777色婷婷| 一本色道久久综合亚洲精品不卡 | 久久久av毛片精品| 正在播放亚洲一区| 亚洲欧洲在线免费| 激情五月综合色婷婷一区二区| 欧美日韩在线播放三区| 欧美国产免费| 久久久久在线| 久久狠狠久久综合桃花| 亚洲女人av| 中国成人黄色视屏| 亚洲裸体视频| 91久久综合| 亚洲第一区色| 老**午夜毛片一区二区三区| 久久爱www.| 亚洲欧美三级伦理| 亚洲性视频h| 中文久久乱码一区二区| 99精品久久| 99视频精品全部免费在线| 亚洲激情专区| 亚洲国产精品尤物yw在线观看| 狠狠网亚洲精品| 国产拍揄自揄精品视频麻豆| 国产精品一二三四| 国产女主播一区二区| 国产精品永久免费在线| 国产日韩欧美精品综合| 国产日韩欧美一区二区| 国产日韩欧美亚洲| 国产一区二区三区免费观看| 国产日韩欧美成人| 国一区二区在线观看| 先锋影院在线亚洲| 久久精品91久久久久久再现| 亚洲一区二区三区免费观看 | 亚洲精选久久| 亚洲久久在线| 亚洲靠逼com| 日韩写真视频在线观看| 日韩天堂在线视频| 中国成人黄色视屏| 亚洲一区综合| 午夜精品视频| 久久不射2019中文字幕| 久久嫩草精品久久久久| 欧美插天视频在线播放| 欧美日韩福利在线观看| 国产精品久久久久影院色老大| 久久久精品一区| 久久久久久久久久久久久女国产乱| 久久精品一二三区| 麻豆视频一区二区| 欧美激情影音先锋| 国产精品久久久久9999高清| 国产日韩精品视频一区二区三区| 韩国成人福利片在线播放| 亚洲成人在线视频网站| 亚洲精品麻豆| 亚洲一区二区三区免费在线观看| 亚洲欧美日韩系列| 久久免费视频网| 欧美国产日韩亚洲一区| 日韩亚洲欧美在线观看| 亚洲欧美中文日韩在线| 久久综合影视| 欧美午夜不卡在线观看免费| 国产欧美大片| 亚洲精品中文在线| 先锋影音一区二区三区| 欧美成人精品在线播放| 一本色道精品久久一区二区三区| 欧美综合国产| 欧美日韩dvd在线观看| 国产精品亚洲欧美| 亚洲人成精品久久久久| 午夜视黄欧洲亚洲| 欧美黄色免费网站| 亚洲在线观看视频| 欧美成人激情视频| 国产美女一区| 亚洲精品自在久久| 久久精品日韩一区二区三区| 亚洲国产裸拍裸体视频在线观看乱了中文 | 亚洲欧洲久久| 欧美亚洲一级| 欧美精品日韩www.p站| 国产女人精品视频| 日韩天堂在线观看| 久久漫画官网| 99精品免费网| 麻豆精品精华液| 国产乱码精品一区二区三| 亚洲精品欧美日韩专区| 久久久噜噜噜久久中文字幕色伊伊 | 久久久久国产精品一区三寸| 亚洲老板91色精品久久| 久久久久久一区二区| 欧美系列电影免费观看| 亚洲国产美女精品久久久久∴| 午夜精品www| 日韩亚洲综合在线| 欧美福利小视频| 伊人久久大香线| 久久国产精品网站| 国产视频综合在线| 免费精品视频| 国产精品日韩欧美一区| 亚洲精品网站在线播放gif| 久久精品国产69国产精品亚洲 | 欧美专区18| 一区二区久久久久| 欧美精品一区二区在线观看| 亚洲高清不卡在线| 久久久中精品2020中文| 亚洲激情一区| 欧美.日韩.国产.一区.二区| 欧美一区二区高清在线观看| 国产精品美女久久久浪潮软件| 一区二区高清视频| 亚洲成人在线视频网站| 久久中文字幕一区| 一区二区三区在线视频免费观看| 欧美一区二区视频网站| 中文在线资源观看视频网站免费不卡| 欧美精品1区2区| 久久久久久网址| 国产自产2019最新不卡| 久久精品夜色噜噜亚洲a∨| 亚洲欧美成人网| 国产精品入口福利| 性欧美超级视频| 亚洲欧美日韩在线一区| 国产欧美一区二区三区视频| 欧美一区二区三区久久精品| 99精品视频免费| 欧美日韩中文字幕在线视频| 一级成人国产| 亚洲最新中文字幕| 国产精品videosex极品| 这里只有精品视频在线| 亚洲美女在线视频| 国产精品电影观看| 亚洲欧美日韩精品| 午夜精品在线观看| 国模套图日韩精品一区二区| 久久综合久久综合九色| 久久综合福利| 日韩天堂在线观看| 日韩写真在线| 国产精品区二区三区日本 | 欧美一区视频| 欧美中文日韩| 亚洲国产精品精华液网站| 亚洲国产毛片完整版| 欧美日韩一区二区精品| 久久av红桃一区二区小说| 久久精品日韩| 日韩一级免费| 亚洲制服丝袜在线| 尤妮丝一区二区裸体视频| 亚洲国内自拍| 国产精品久线观看视频| 久久手机精品视频| 欧美精品在欧美一区二区少妇| 午夜精品久久久久久| 久久亚洲精品网站| 亚洲香蕉伊综合在人在线视看| 欧美一级专区免费大片|