乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Lex和Yacc從入門到精通(2)--正則表達式篇

       rookie 2012-08-06

      正則表達式在Unix/Liunx系統(tǒng)中起著非常重要的作用,在很大一部分的程序中都使用了正則表達式,可以這么說:“在Unix/Linux系統(tǒng)中,如果不懂正則表達式就不算會使用該系統(tǒng)”。本文中使用的LexYacc都是基于正則表達式的應(yīng)用,因此有必要用一篇文檔的形式詳細說明在LexYacc中使用的正則表達式為何物!

      其實正則表達式非常簡單,用過DOS的人都知道通配符吧,說得簡單一點,正則表達式就是稍微復(fù)雜一點的通配符。這里的正則表達式非常簡單,規(guī)則非常少,只需要花上幾分鐘就可以記住。正則表達式的元字符列表如下:

      元字符

      匹配內(nèi)容

      .

      除了換行符之外的任意字符

      /n

      換行符

      *

      0次或者多次匹配

      +

      1次或者多次匹配

      0次或者1次匹配

      ^

      行首

      $

      行尾

      a|b

      a或者b

      (ab)+

      ab的一次或者多次匹配

      “a+b”

      a+b(字面意思)

      []

      一類字符

      有了上面的元字符之后,就可以用上面的元字符表達出非常復(fù)雜的匹配內(nèi)容出來,就像DOS名令中的通配符可以匹配多個指定規(guī)則的文件名一樣?,F(xiàn)在讓我們看看上面的元字符的一些應(yīng)用例子,列表如下:

      表達式

      匹配內(nèi)容

      abc

      abc

      abc*

      abc abcc abccc abcccc ……

      abc+

      abcc abccc abcccc ……

      a(bc)+

      abcbc abcbcbc abcbcbcbc ……

      a(bc)?

      abc abcbc

      [abc]

      a b c其中之一

      [a-z]

      a b c d e f g… … z其中之一

      [a/-z]

      a – z 三個字符其中之一

      [-az]

      – a z 三個字符其中之一

      [A-Za-z0-9]+

      大小寫字符和10個數(shù)字的一個或多個

      [ /t/n]

      空格,跳格,換行三者之一(空白符)

      [^ab]

      除了ab之外的任意字符

      [a^b]

      a ^ b 三者之一

      [a|b]

      a | b 三者之一

      a|b

      a b 兩者之一

      ^abc$

      只有abc的一行

       

      注意*+的區(qū)別,通配符只是匹配之前最近的元素,可以用小括號將多個元素括起來,整個括號括起來的整體可以看作是一個元素。那么通配符就可以匹配整個括號的內(nèi)容了。

      方括號表示的是一類字符,[abc]就是定義了只有abc三個字符的一類字符。這一點和abc不同,如果跟上通配符(*+?)的話,那么方括號就可以表示前面的任意的字符之一的一個字符的多個匹配,但是abc的話就只能是c的多個匹配了。說的更明白點就是DOS里面的通配符*表示的是任意字符的零個或者多個,而這里的方括號就是把DOS里面的任意字符類縮小為只有方括號表示的類了。另外還要注意連字符-在方括號中的意思,在方括號的中間表示“范圍”的意思,而在首部則僅僅表示自己而已。

      轉(zhuǎn)義用/,這和C語言類似,另外還需要注意三個特殊的元字符(^ | $)的意義?!?/span>^’放在方括號的首部表示“除了”的意思,在其他地方?jīng)]有特別意義?!?/span>|’不在方括號中表示“或者”,‘$’通常表示行尾。

       

      通過上面的注釋可以看出:使用正則表達式可以表示非常復(fù)雜的匹配內(nèi)容,

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多