大数据---------linux基础 ---------02linux基本命令----------正则表达式(13,14)

问题集锦

 01  \n 反向引用  反向引用的意思是:

03中     ? 匹配0到1次 的具体意思是啥?

03 中 * 匹配0到多次  的具体意思是啥?

04 的实例2中的两个正则表达式只有细微的差别,只是后面的顺序不同,结果不同,不知道是为啥?正则还是太难了,留给大家一起解决吧。


目录

目录

01 grep

             作用:

             使用方法:

             选项:

 02 匹配操作符

 03  重复操作符

        实例

 



正文

01 grep

             作用:

       显示匹配行

             使用方法:

        grep 选项 参数

             选项:

        -v 反显示 显示未匹配的行

        -E 采用扩展正则表达式

 02 匹配操作符

     \转义字符

     . 匹配任意单个字符

     [012]  [^0-9]字符序列单字符占位

    ^ 行首

    $行尾

     \< \> 单词首尾边界 例如 \<abc 

   | 连接操作符 意为或

   ()选择操作符 

    \n 反向引用  反向引用的意思是:

 03  重复操作符

       ? 匹配0到1次 

        * 匹配0到多次 

        + 匹配1到多次

        {n} 匹配n次 :指把{}前面的部分算上,重复了两次。

        {n,} 匹配n到多次

        {n,m} 匹配n到m次

        .* 匹配任意多个字符

        实例

           1 匹配只有ooxx这四位的正则表达式

                 grep "/<ooxx/>" a.txt

           2 匹配包含四位连续整数的行

              思路:列出所有的情况 。无非四种情况,以数字开头和以非数字开头,以数字结尾和以非数字结尾 将开头和结尾结合共三种情况,比如 1234xxx ,xx1234,xx1234x。把它们可以抽象化为四位 1/23/4,其中中间两个位一定是数字,第一位可以是数字也可以是非数字加数字(第一位可以是非数字加数字这个理解比较抽象,比如xx1234,其中x1代表这里的第1位),结尾可以是数字也可以是数字加非数字(最后一位是数字比如xx1234 其中4就是最后一位,最后一位是数字加非数字,比如1234xxx,4x就是数字加非数字)。按照这样的划分可以写出以下正则表达式。

"\(^[0-9]\|[^0-9][0-9]\)[0-9]\{2\}\([0-9][^0-9]\|[0-9]$\)

 下面这个正则表达式是不正确的,不知道为啥,两者的不同只有结尾的结尾处的顺序不同。

\(^[0-9]\|[^0-9][0-9]\)[0-9]\{2\}\([0-9]\|[0-9][^0-9]$\)

  正则太难了,还是留给大家一起解决吧。

        3 匹配最少含有2个b,最多含有3个b的行。

        4 匹配以连续的三个a开头的行,或者是以空格开头,接下来是三个连续的a
          grep "\<aaa" test
       5 匹配god.*good.*god.*good 这里使用了反向引用
        grep "god.*good.*god.*good" test
        grep "\(god\).*\(good\).*\1.*\2.*" test

        这里反引用的意思是用1代表第一个括号内的内容,用2代表第二个括号内的内容,这个时候需要用转义符号将1和2转义,这个十分重要。

           

              

 

猜你喜欢

转载自blog.csdn.net/wi8ruk48/article/details/88384924
今日推荐