三、正则表达式

1.正则表达式

  • 元字符(Metacharacters)

    • 定义

      描述字符的字符,它用于对字符表达式的内容、转换及各种操作信息进行描述

    • 作用

      用来阐释字符表达式意义的字符

  • 正则表达式(RE (Regular Expression))

    • 定义

      由一串字符和元字符构成的字符串

    • 作用

      进行文本查询和字符串操作,它可以匹配文本的一个字符或字符集合

  • 基本的正则表达式元字符集合及其意义

    符号 意义
    * 0个或多个在*字符之前的那个普通字符
    . 匹配任意字符
    ^ 匹配行首,或后面字符的非
    $ 匹配行尾
    [] 匹配字符集合
    转义符,屏蔽一个元字符的特殊意义
    <> 精确匹配符号
    {n} 匹配前面字符出现n次
    {n,} 匹配前面字符至少出现n次
    {n,m} 匹配前面字符出现n~m次
    • 特殊用法

      • 匹配空行

        ^$ #该正则表达式既匹配行首,又匹配行尾,中间没有任何字符,因此为空行
        
      • “^”表示取反

        ""符号表示匹配行首,但是“”符号放到“[]”符号中就不再表示匹配行首了,而是表示取反符号

        [^b-d] # "^"表示取反
        

2.正则表达式的扩展

  • 扩展的正则表达式元字符及其意义

    符号 意义
    ? 匹配0个或1个在其之前的那个普通字符
    + 匹配1个或多个在其之前的那个普通字符
    () 表示一个字符集合或用在expr中
    | 表示“或”,匹配一组可选的字符
    • 说明

      “()”符号通常与"|"符号结合使用,表示一组可选字符的集合

      re(a|e|o)d # 匹配read、reed、reod
      

3.通配

​ bash shell可以使用正则表达式中的一些元字符实现通配(globbing)功能。

​ ?、*、[]、{}、^等这些元字符在通配中的意义与正则表达式中的意义不完全一致,*符号表示任意位的任意字符,?字符表示一个任意字符,^符号在通配中代表取反。

​ 内部变量GLOBIGNORE保存了通配时所忽略的文件名集合。

​ ?、*、[]、{}、^五个符号和GLOBIGNORE变量构成了shell通配的所有内容。

原文地址:https://www.cnblogs.com/nuochengze/p/14417897.html