正则表达式 初学

正则表达式使用方式及作用

           正则表达式就是通过处理字符串的方法,可以让用户轻松搜索/替换某特定的字符串。


正则表达式类型

           正则表达式分为: 基本正则表达式和扩展正则表达式


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支持正则表达式:

                扩展正则表达式除了基本正则表达式几个元字符不同,基本一致。

          


你可能感兴趣的:(alias,color,配置文件,表达式)