• <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>

            O(1) 的小樂

            Job Hunting

            公告

            記錄我的生活和工作。。。
            <2011年7月>
            262728293012
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            統(tǒng)計

            • 隨筆 - 182
            • 文章 - 1
            • 評論 - 41
            • 引用 - 0

            留言簿(10)

            隨筆分類(70)

            隨筆檔案(182)

            文章檔案(1)

            如影隨形

            搜索

            •  

            最新隨筆

            最新評論

            閱讀排行榜

            評論排行榜

            Master regular expression Chapter1

            Master Regular Expression     Jeffrey E.F. Friedl


            序言:

            孟巖
            1988年,被譽(yù)為“軟件世界的愛迪生”發(fā)明了BSD,TCP/IP ,csh, vi NFS的sun首席科學(xué)家Bill Joy 曾經(jīng)不無調(diào)侃的說,在計算機(jī)體系結(jié)構(gòu)領(lǐng)域里,緩存是唯一能稱得上偉大的思想。

            在計算機(jī)軟件領(lǐng)域里,稱得上偉大發(fā)明的,Packet Switched Network,Web,Lisp,Hash algorithm,UNIX,Compile Techniques,Relational Database Model,Object Oriented,XML,而Regular Expression 絕對比應(yīng)該被漏掉!

            正則表達(dá)式不是每天都會用到,而其密碼般的形象,隨著時間的推移很容易被忘記,所以經(jīng)常發(fā)生的情況是,開發(fā)者對于正則表達(dá)式的記憶迅速消退,每次遇到新的問題,都要差資料,重新喚回記憶,對于稍微復(fù)雜一點(diǎn)的問題,只好求助于現(xiàn)成的解決方案。為了高效的正確的解決實(shí)際問題,有的時候甚至要求深入理解正則表達(dá)式的原理,甚至對于如何實(shí)現(xiàn)正則表達(dá)式引擎都要有所了解,規(guī)避陷阱,優(yōu)化設(shè)計,提高程序執(zhí)行效率。

            系統(tǒng)學(xué)習(xí)regualr expression 并不是意見容易的事情,僅僅通過閱讀一些How to的快餐式文章是不行的。 所以大家都會推薦這本書Jeffrey Friedl的《master regualr expression 》


            1  看完一本技術(shù)書籍需要多長時間?譯者《精通正則表達(dá)式》,看完這本書大概花了一周的業(yè)余時間,之后如撥云見日

            2 宿主語言(Perl Java VB.Net) 提供了外圍的處理支持,但是真正的能力來自正則表達(dá)式。

            3 完整Regular Expression由兩種字符構(gòu)成。特殊字符(special characters)稱為“元字符” (metacharacters)其他為文字(literal)

            4  ^ 代表一行的開始
               $代表結(jié)束
               正則表達(dá)式結(jié)構(gòu)體(construct) gr[ea]y 表達(dá)的是grey  gray
               字符組元字符(character-class metacharacter) ‘-’表示一個范圍 <H[1-6]>  與 <H[123456]> 是完全一樣的。
               [0-9A-Z_!.?] 能夠匹配一個數(shù)字、大寫字母、下劃線、感嘆號、點(diǎn)號或者問號
               [^] 排除型字符  排除型字符組表示匹配一個未列出的字符(match a charater that's not listed)而不是 “不要匹配列出的字符(don't match what is listed)”
              
               ^cat$  只包含cat的行
               ^$     空行
               . 用來匹配任意字符的字符組的簡便寫法

            5 正則表達(dá)式的一個重要的問題是:寫正則表達(dá)式的時候,我們需要在對欲檢索文本的了解程度與檢索精確性之間求得平衡。

            6  | 表示多分支的或 (alternative)
               對于表達(dá)式gr(a|e)y 來說,括號是必須的!
               Jeffrey|Jeffery     Jeff(rey|ery)    Jeff(re|er)y 等價
              
            7 忽略大小寫使用的是-i命令

            8 單詞分界符 \<   \> 這個是單詞版本的^ $

            9 元字符?代表可選項(xiàng),把它加在一個字符的后面,就表示此處容許出現(xiàn)這個字符,不過它的出現(xiàn)并非匹配成功的必要條件。

            界定?的作用對象是括號的主要用途之一
             
            + 表示之前緊鄰的元素出現(xiàn)一次或多次
            * 表示之前緊鄰的元素出現(xiàn)任意次
            ?*+ 統(tǒng)稱為量詞(quantifiers) 因?yàn)樗麄兿拗屏怂饔迷氐钠ヅ浯螖?shù)
             
            interval quantifier區(qū)間量詞,能夠使用元字符來定義重現(xiàn)次數(shù)的區(qū)間{min,max}
             
             
            10 轉(zhuǎn)義字符 escape
               \([a-zA-Z]+\) 來匹配一個括號內(nèi)的單詞,比如(very)
              
            11 任何語言中都存在不同的方言和口音,很不幸,正則表達(dá)式也一樣。眾多正則表達(dá)式的流派(flavor)

            flavor 這個詞真是用的巧啊!!

            12 編寫正則表達(dá)式的時候,按照預(yù)期獲得成功的匹配要花去一般的功夫,另一半的功夫用來考慮如何忽略那些不符合要求的文本。

            13   "[^"]*"  用來匹配引號內(nèi)的字符串

            在深入了解如何調(diào)校正則表達(dá)式之后,讀者會明白,想要在復(fù)雜性和完整性之間求得平衡,一個重要的因素是了解待搜索的文本。

            14  (1[012]|[1-9]):[0-5][0-9](am|pm)  來匹配 9:17am   12:30pm

            15 metacharacter  metasequence 表達(dá)的是元字符,很可惜,又是flavor不同。。。

            16 一個正則表達(dá)式的效率由于其他表達(dá)式的原因所在,而且你將能夠在復(fù)雜性效率和匹配準(zhǔn)確性之間進(jìn)行取舍權(quán)衡

            17 實(shí)際上,正則表達(dá)式引擎(regualr expression engine)不同,工作原理也不同,所以對于同樣的正則表達(dá)式,不同的程序會得到不同的結(jié)果。

            18 Page 32 給出了egrep中metacharacter的總結(jié)!還是不錯的!

            19  在第一章的最后,有這樣一段,算是共勉吧!
            It might take some time to become acclimated to regualr expression,so until you get a real taste of the excitement by using them to solve your problems,it might all feel just a bit too academic.If so,I hope you will resist the desire to play rummy.Once you understand the power that regualr expressions provide,the small amount of work spent learning them will feel trivial indeed!

             

            心血來潮,補(bǔ)補(bǔ)基礎(chǔ),做一下筆記。慢慢看,這個也不著急,大概需要一個月的時間。。

            posted on 2011-07-03 22:22 Sosi 閱讀(527) 評論(1)  編輯 收藏 引用

            評論

            # re: Master regular expression Chapter1 2011-07-26 16:23 他她女鞋

            還真不是很了解。
              回復(fù)  更多評論    

            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            統(tǒng)計系統(tǒng)
            婷婷综合久久狠狠色99h| 久久人人爽人人爽人人片AV不 | 免费一级欧美大片久久网| 激情久久久久久久久久| 久久精品无码午夜福利理论片| 久久久亚洲欧洲日产国码二区| 久久99精品综合国产首页| 一本色道久久88综合日韩精品| 老色鬼久久亚洲AV综合| 99久久精品免费观看国产| 怡红院日本一道日本久久 | 亚洲国产精品久久久久婷婷老年| 伊人久久免费视频| 久久99精品久久久大学生| 69久久精品无码一区二区| 亚洲国产日韩欧美综合久久| 久久精品亚洲精品国产色婷| 久久一区二区三区免费| 国产精品九九九久久九九| 三级三级久久三级久久| 国产精品青草久久久久福利99| 久久人人妻人人爽人人爽| 狠狠色综合久久久久尤物| 青青草原精品99久久精品66| 欧美国产成人久久精品| 99久久国产综合精品网成人影院| 久久99热这里只频精品6| 久久精品国产色蜜蜜麻豆| 99久久免费国产特黄| 久久人人爽人人爽人人片AV麻烦| 国产L精品国产亚洲区久久| 99久久精品毛片免费播放| 无码超乳爆乳中文字幕久久| 中文字幕无码久久人妻| 亚洲国产精品成人AV无码久久综合影院 | 久久精品一本到99热免费| 久久亚洲精品国产精品婷婷| 久久这里有精品视频| 国产精品免费久久久久电影网| 丁香久久婷婷国产午夜视频| 国产成人久久精品二区三区|