zoukankan      html  css  js  c++  java
  • shell编程学习笔记之正则表达式初识

    1.对单字符的查找:

      1.1单字符: ‘X’

        $ grep ‘q’ passwd //查找单个字符

      1.2 范围字符 [] [^]

      1.3 任意字符 .

    $ grep '[1-9]' passwd //查找某个范围的单个字符(范围)

    $ grep '[a-zA-Z]' passwd //查找某个范围的单个字符(范围)

    $ grep '[a-zA-Z:/,_-()]' passwd ------------>$ grep '[^0-9]' passwd //取反

    2.正则表达式的符号:

      边界字符:

    2.1头字符: ^ :^root root开始的

    2.2 围字符:$ : $flase :flase结束的

    2.3 空行 : ^$ :头尾相碰表示空行

    元字符:

    w :匹配任意字类字符

    W :匹配任意非字类字符

         :代表字符的分割

          

       

          

    3.正则表达字符组合

      grep ‘[0-9][0-9]’ passwd

      3.1重复

    * : 零次或多次 匹配前面的字符或表达式

    + :一次或多次 ……

    ?:零次或一次……


     1 qi@zhuandshao:~$ cat test
     2 
     3 sesesese
     4 
     5 
     6 se
     7 
     8 
     9 seeeee
    10 
    11 
    12 
    13 s+s+
    14 
    15 
    16 50000000


     

    1 qi@zhuandshao:~$ grep 'se*' test
    2 
    3 sesesese
    4 
    5 se
    6 
    7 seeeee
    8 
    9 s+s+
    qi@zhuandshao:~$ grep 'se+' test
    
    qi@zhuandshao:~$ grep 's+' test
    
    s+s+
    
    qi@zhuandshao:~$ echo se+se+ >> test
    
    qi@zhuandshao:~$ grep 'se+' test
    
    se+se+
    
    qi@zhuandshao:~$ grep 'se+' test //加上反斜杠,进行转义
    
    sesesese
    
    se
    
    seeeee
    
    se+se+
    
    qi@zhuandshao:~$ grep 'se?' test
    
    qi@zhuandshao:~$ grep 'se?' test
    
    sesesese
    
    se
    
    seeeee
    
    s+s+
    
    se+se+
    
    qi@zhuandshao:~$
    
    qi@zhuandshao:~$ grep '(se)*' test //零次匹配会出现空行或者完全不匹配
    
    sesesese
    
    
    se
    
    
    seeeee
    
    
    
    s+s+
    
    
    50000000
    
    se+se+
    
    
    qi@zhuandshao:~$ grep '(se)+' test //反斜杠 使用括号对字符串重复
    
    sesesese
    
    se
    
    seeeee
    
    se+se+


      3.2重复特定次数 {n,m}

    qi@zhuandshao:~$ grep '[0-9]{2,3}' passwd

    qi@zhuandshao:~$ grep '[0-9]{2,3}' passwd //重复两到三次


      3.3 逻辑符号表示

        贪婪匹配:尽可能匹配最大长度

        任意字符串: .*

          

       逻辑或 |

    qi@zhuandshao:~$ grep 'bin/(false|true)' passwd
    
    
    systemd-timesync:x:100:102:systemd Time Synchronization,,,:/run/systemd:/bin/false
    
    systemd-network:x:101:103:systemd Network Management,,,:/run/systemd/netif:/bin/false
    
    systemd-resolve:x:102:104:systemd Resolver,,,:/run/systemd/resolve:/bin/false
    
    systemd-bus-proxy:x:103:105:systemd Bus Proxy,,,:/run/systemd:/bin/false
    
     

      3.4.字符组合小结:

       

    4.正则表达式案例

      4.1.匹配4-10位的QQ号码

        grep '^[0-9]{4,10}$' qq.txt //首尾^$


      4.2匹配1518位身份证号码 (支持X

        $ grep '^[1-9]([0-9]{13}|[0-9]{16})[0-9xX]&' qq.txt


      4.3 匹配密码 (数字、26字母、下划线)

        $grep ‘^w+$’ qq.txt

     


    5.正则表达式总结



     

  • 相关阅读:
    UVA
    剑指offer 面试题11
    SharePoint 2013+ Sqlserver 2014 Kerberos 配置传奇, 最终的解决方案 验证。
    ASC(1)G(上升时间最长的序列)
    J2EE它是一个框架?平台?规范?
    C++和python使用struct传输二进制数据结构来实现
    前端开发面试题集(二)
    C语言中<CR>是什么意思
    Delphi ParamStr 使用方法
    打包工具 使用帮助 inno setup
  • 原文地址:https://www.cnblogs.com/zhuandshao/p/7269158.html
Copyright © 2011-2022 走看看