正則表達式 初學

正則表達式使用方式及作用

           正則表達式就是通過處理字符串的方法,可以讓用戶輕鬆搜索/替換某特定的字符串。


正則表達式類型

           正則表達式分爲: 基本正則表達式和擴展正則表達式


grep和基本正則表達式的關係

                   grep強大的文本搜索工具支持基本正則表達式,通過元字符去匹配搜索,替換字符。搜索迅速,方便,智能化。


一,基本正則表達式的元字符

    字符匹配

           . :匹配任意單個字符

        []:匹配指定範圍內的任意單個字符

              [0-9] [[:digit:]]匹配任意一個數字

              [a-z]  [[:lower:]]匹配任意一個小寫字母

              [A-Z] [[:upper:]]匹配任意一個大寫字母

              [[:space:]]匹配空白字符

              [[:paunct:]]

              [[:alpha:]] 匹配任意一個字母

              [[:alnum:]] 匹配任意一個字母或數字

         [^]:匹配指定範圍外的任意單個字符

    次數匹配元字符:用於實現指定其前面的字符所能夠出現的次數

         *:任意長度,它前面的字符可以出現任意次

              例如:      x*y  =  xxy

         \?:0次或1次,它前面的字符是可有可無

               例如:   x\?y  =xy  y

         \{m\}:m次,它前面的字符要出現m次

                例如:x\{2\}y=xxy

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

                 例如x   \{2,5\} y  = xxy

          \{m,\}:至少m次

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

           .*:任意長度的任意字符


    位置錨定

          ^:行首錨定 寫在模式最左側

          $:行尾錨定  寫在模式最右側

          ^$:空白行

     不包含特殊字符的連續字符組成的串叫單詞:

       \<:詞首     出現於單詞左側

       \>:詞尾      出現於單詞右側

     分組:

           \(\)

         例如:\(ab\)*

          分組中的模式匹配到的內容,可由正則表達式引擎記憶在內存中,之後可被引用。

       引用:

           例如\(ab\(x\)y\).*\(mn\)

            有編號:左到右的左括號,與其匹配右括號

                     

         \#:引用第n個括號所匹配前面的內容,而非模式本身

              例如:\(ab\?c\).*\1 =abcmnabc

   命令選項

            -v:反向選取

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

            -i:忽略字符大小寫

            -E:支持擴展正則表達式


二,基本正則表達式的元字符示例


     示例1(字符匹配:[a-z]匹配範圍內的任意字符 [[:digit:]]匹配任意一個數字

     示例2 (次數匹配元字符\{m\}:m次,它前面的字符要出現m次)

     示例3位置錨定:\<:詞首錨定 )

     示例4(分組:\(\)模式) 


通過命令別名可以改變搜索到字符的字體

命令:alias grep='grep --color=auto'^C

注:通過以上命令可立即生效,想要永久保存有效,修改配置文件。


spacer.gif

             


      示例1  [a-z]

              [[:digit:]]匹配任意一個數字   wKiom1V1T3jzdnD2AABiX0p-0VU518.jpg

    


        

     示例2 次數匹配元字符:用於實現指定其前面的字符所能夠出現的次數

       

         \{m\}:m次,它前面的字符要出現m次

                例如:1\{2\}y=1128

   wKiom1V1UImDJEJ7AABTNb6i92M915.jpg


     示例3 位置錨定:

               \<:詞首     出現於單詞左側

    wKioL1V1Ux3jbeG4AACnpmMowN8873.jpg

      


     示例4  分組:

          \(\)

         例如:\(12\)*

         *:匹配任意長度的字符

          \<:詞首錨定

wKioL1V1VE2xOmlbAACcpMf6Os8604.jpg


三,egrep支持正則表達式:

                擴展正則表達式除了基本正則表達式幾個元字符不同,基本一致。

          


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章