grep、egrep正則表達(dá)式之初窺門徑

成都創(chuàng)新互聯(lián)公司是專業(yè)的大關(guān)網(wǎng)站建設(shè)公司,大關(guān)接單;提供成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行大關(guān)網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

何謂正則表達(dá)式

正則表達(dá)式,又稱正規(guī)表示法、常規(guī)表示法(Regular Expression,在代碼中常簡(jiǎn)寫為regex、regexp或RE),是一類字符所書(shū)寫的模式,其中許多字符不表示其字面意義,而是表達(dá)控制或通配等功能。正則表達(dá)式使用單個(gè)字符串來(lái)描述、匹配一系列符合某個(gè)句法規(guī)則的字符串。在很多文本編輯器里,正則表達(dá)式通常被用來(lái)檢索、替換那些符合某個(gè)模式的文本。許多程序設(shè)計(jì)語(yǔ)言都支持利用正則表達(dá)式進(jìn)行字符串操作。

正則表達(dá)式語(yǔ)言由兩種基本字符類型組成:原義(正常)文本字符和元字符。元字符使正則表達(dá)式具有處理能力。所謂元字符就是指那些在正則表達(dá)式中具有特殊意義的專用字符,不表示其字面意義,而用于額外功能性描述。

正則表達(dá)式分類

正則表達(dá)式根據(jù)元字符的數(shù)量及功能不同又分為基本正則表達(dá)式(grep)和拓展正則表達(dá)式(egrep)。而grep和egrep同屬于文本搜索工具,可根據(jù)用戶指定的文本模式(搜索條件)對(duì)目標(biāo)文件進(jìn)行逐行搜索,顯示能匹配到的行。用法上grep –E等同于egrep,與grep和egrep相似的文本搜索工具還有fgrep,因不支持使用正則表達(dá)式,所以不再單獨(dú)介紹。

基本正則表達(dá)式(grep)

語(yǔ)法格式:grep[option]... 'PATTERN' FILE...

基本正則表達(dá)式元字符:

1.字符匹配:

     .:任意單個(gè)字符

     [ ]:匹配指定范圍內(nèi)的任意單個(gè)字符

    [0-9]:匹配單個(gè)數(shù)字

    [a-z]:匹配單個(gè)小寫字母

[A-Z]:匹配單個(gè)大寫字母

[[:digit:]]:匹配單個(gè)數(shù)字

[[:lower:]]:匹配單個(gè)小寫字母

[[:upper:]]:匹配單個(gè)大寫字母

[[:space:]]:匹配單個(gè)空白字符

[[:punct:]]:匹配單個(gè)標(biāo)點(diǎn)符號(hào)

[[:alnum:]]:匹配單個(gè)字母或數(shù)字

[[:alpha:]]:匹配單個(gè)字母(不分大小寫)

[^]:匹配范圍外的任意單個(gè)字符

 2.次數(shù)匹配

  *:任意次(前面字符出現(xiàn)任意次)

  \?:0次或1次(前面字符可有可無(wú))

  \{m\}: m次(前面字符出現(xiàn)m次)

  \{m,n\}:至少m次,至多n次

  \{m,\}:至少m次

  \{0,n\}:至多n次

  .*:任意長(zhǎng)度的任意字符

  3.位置錨定:

  ^:行首錨定(寫在模式最左側(cè))

  $:行尾錨定(寫在模式最右側(cè))

  ^$:空白行

  \<,/b:詞首錨定(出現(xiàn)于單詞左側(cè))

  \>,/b:詞尾錨定(出現(xiàn)于單詞右側(cè))

 (注:不包含特殊字符的連續(xù)字符組成的串叫單詞)

  4.分組

  \( \):如\(ab\)*

 (分組中的模式匹配到的內(nèi)容,可由正則表達(dá)式引擎記憶在內(nèi)存中,之后可被引用)

  5.引用

  \n:引用前面的第n個(gè)左括號(hào)以及與之對(duì)應(yīng)的右括號(hào)中的模式所匹配到的內(nèi)容

拓展正則表達(dá)式(egrep)

    語(yǔ)法格式:egrep [option] 'PATTERN' FILE...

    拓展正則表達(dá)式元字符:

    1.字符匹配:

        .:任意單個(gè)字符

        [ ]:匹配范圍內(nèi)的任意單個(gè)字符

        [^]:匹配范圍外的任意單個(gè)字符

    2.次數(shù)匹配:

        *:任意次

        ?: 0或1次

        +:至少1次

        {m}: m次

        {m,n}:至少m次,至多n次

        {m,}:至少m次

        {0,n}:至多n次

   3.位置錨定:

        ^:行首錨定

        $:行尾錨定

        \<,\b:詞首錨定

        \>,\b:詞尾錨定

        ^$,^[[:space:]]*$:空白行

     4.分組:

        ( ):分組

        |:或 

    5.引用:

       \n:引用前面的第n個(gè)左括號(hào)以及與之對(duì)應(yīng)的右括號(hào)中的模式所匹配到的內(nèi)容

    grep及egrep命令選項(xiàng)

    -v: 反向選取

      -o:僅顯示匹配的字串,而非字串所在的行

      -i:ignore-case,忽略字符大小寫

      -A:顯示之后兩行

      -B:顯示之前兩行

      -C:顯示上下兩行

    牛刀小試


     顯示/proc/meminfo文件中以大寫或小寫S開(kāi)頭的行

     grep、egrep正則表達(dá)式之初窺門徑

     顯示/etc/passwd文件中其默認(rèn)shell為非/sbin/nologin的用戶

     grep、egrep正則表達(dá)式之初窺門徑

     顯示/etc/passwd文件中其默認(rèn)shell為/bin/bash的用戶中ID號(hào)最大的用戶

    grep、egrep正則表達(dá)式之初窺門徑

    找出/etc/passwd文件中的一位數(shù)或兩位數(shù)

    grep、egrep正則表達(dá)式之初窺門徑

    顯示/boot/grub/grub.conf中以至少一個(gè)空白字符開(kāi)頭的行

    grep、egrep正則表達(dá)式之初窺門徑

    顯示/etc/rc.d/rc.sysinit文件中,以#開(kāi)頭,后面跟至少一個(gè)空白字符,而后又有至少一個(gè)非空白字符的行

    grep、egrep正則表達(dá)式之初窺門徑

    找出netstat -tan命令執(zhí)行結(jié)果中以'LISTEN'結(jié)尾的行

    grep、egrep正則表達(dá)式之初窺門徑

    找出當(dāng)前系統(tǒng)上其用戶名和默認(rèn)shell相同的用戶

    grep、egrep正則表達(dá)式之初窺門徑

    顯示當(dāng)前系統(tǒng)上root或scholar用戶的默認(rèn)shell

    grep、egrep正則表達(dá)式之初窺門徑

    找出/etc/rc.d/init.d/functions文件中某單詞后跟一組小括號(hào)“()”行

    grep、egrep正則表達(dá)式之初窺門徑

    使用echo命令輸出一個(gè)路徑,而后使用grep取出其基名

    grep、egrep正則表達(dá)式之初窺門徑

    找出ifconfig命令結(jié)果中的1-255之間的數(shù)字

    grep、egrep正則表達(dá)式之初窺門徑

    The End


    好了總結(jié)到這里,常用的正則表達(dá)式用法就整理的差不多了,以上都是個(gè)人學(xué)習(xí)總結(jié),如有錯(cuò)漏,大

神勿噴~~~

網(wǎng)站欄目:grep、egrep正則表達(dá)式之初窺門徑
URL分享:http://bm7419.com/article14/gigpge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站、云服務(wù)器、網(wǎng)站營(yíng)銷、手機(jī)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)公司網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司