zoukankan      html  css  js  c++  java
  • 正则表达式--三剑客简单应用

    1、正则表达式:

      简单的说,正则表达式就是一套处理字符串的规则和方法,以行为单位对字符串进行处理,通过特殊的符号的辅助,我们可以快速的过滤,替换某些特定的字符串。

      正则表达式可以快速的过滤出我们需要的内容。配合三剑客使用。

    2、正则表达式实际就是一些特殊字符,赋予了他特定的含义。

    (1)^word  搜索以word开头的

    (2)word$  搜索以word结尾的

    (3).      代表且只能代表任意一个字符

         .   具有的含义,代表当前目录、隐藏文件的标识、使一个配置文件生效。

    (4)      转义

    (5)*      表示重复0个或多个前面的一个字符。

    (6).*     匹配所有字符(任意字符多个)

         ^.*  以任意字符开头的

    (7)[]      括号里的内容都可以匹配

    (8)[^word]  匹配不包含 ^后任意字符的内容

    (9){n,m}   重复 n 到 m 次,前一个重复的字符。如果用 egrep 可以去掉斜线。

        {,m}   重复至多 m 次,前一个重复的字符。如果用 egrep 可以去掉斜线。

        {n,}    重复至少 n 次,前一个重复的字符。如果用 egrep 可以去掉斜线。

         {n}    重复 n 次,前一个重复的字符。如果用 egrep 可以去掉斜线。

      需要对{}进行转义,所以在每个大括号前面加上

    3、举例说明:

      

     (1)过滤 M 开头的

      

     (2)不区分大小写输出。  -i

      

    (3)过滤以 m 结尾的,$ 放在后面。

      

    (4)将带 . 的文件进行过滤输出并加行号显示。 -n  显示行号; . 匹配任意一个字符,需要用 进行转义。

      

     (5)过滤“49000448”号码,使用 * 进行0次或多次匹配。

      

      * 将前面的0匹配了0次或多次。

    (6)使用 [] 过滤。

      

       [] 里的内容都可以匹配,匹配 l 或者 o,匹配到的是 blog 或 boog。

     

    (7)匹配不带有 oldboy 任意一个字符的行;括号里的任意一个字符都匹配。

      

     

     

     

      

     

      

     (8)使用分组的情况过滤 qq 号码;

      

      对前面的 0 匹配 2-3 次。

           对前面的 0 匹配至多 5 次。0 - 5 次

      

        对前面的 0 匹配至少 3 次。

      

    ======================================================

    扩展的正则表达式:  egrep  或  grep  -E

      (1)+  重复一个或一个以上前面的内容

       

       (2)?  0个或一个前面的字符

        

         匹配前面的字符 0 次或一次。

       (3)|  用或的方式查找多个符合的字符串

        

           查找文件下为有 3306 或 1521 的文件

       (4)()  找出 “用户组” 字符串

        

         查找带 lo 组或者 oo 组的内容

    ======================================================

     4、awk 取IP地址:

      

       grep 过滤出地址存在的行,用 awk 指定分隔符取 IP 地址。

      awk 多个分隔符取 IP 地址,awk 多分隔符需要将分隔符用()括起来。

      

       使用 = 和 > 作为分隔符,中间的内容就是要取的。

      (1)取出文件的权限。

      

       使用 awk 指定多分隔符的方法,将内容前后的分隔符指明。

    5、sed 取IP地址:

      

       使用 sed 将 IP 地址前后的内容替换成空,以。。开头,以。。结尾需要加上标识符 ^ $.

      

       在前两个 # 号中写入的条件是:以任意字符开头到 inet  结尾,中间括号里的内容代表的是 IP 地址,后面加上   netmask 开头任意字符结尾。后两个 # 号中的内容 1 代表的是输出第一个小括号里的内容,小括号表示分组,即输出前面括号里的内容,结尾加上 p 表示打印输出。

      需要用反斜线对小括号进行转义。

      

       前面小括号里表示任意字符,中间用空格分隔,后面接上任意字符,因为 a.txt 文件中只有一个空格,1 表示输出第一个小括号中的内容, 2 表示输出第二个小括号中的内容。如果只输出第一个小括号中的内容也可以。

      

       (1)sed 取文件的权限:

      

      以任意字符开头到 ( ,分组内的内容表示任意字符,即要取得内容,后面跟上要取内容后面跟上剩下的部分,1 取第一个分组的内容,p 打印输出。

    ======================================================

    6、stat

    stat -c 加参数可以查到文件权限的信息

    %a  取八进制的权限

    %A  人类可读的权限

      

       

      

  • 相关阅读:
    the process cannot access the file because it is being used by another process
    SharePoint 2013: The "New Web Application" button is disabled is the central administration
    【转】Windows按键消息—虚拟键码
    【转】windows消息16进制对应表
    C#将图片字节流转为Base64直接放入html的img标签src属性中
    WPF自定义Main函数
    c#geckofx文件流下载
    腾讯RTX登录提示失败问题及处理办法
    C# \u8888类型的unicode转换为字符串方法
    C#System.Net.Mail采用简单邮件传输协议发送邮件
  • 原文地址:https://www.cnblogs.com/wqs-Time/p/11586804.html
Copyright © 2011-2022 走看看