zoukankan      html  css  js  c++  java
  • Linux 正则表达式

    Linux 正则表达式
    正则表达式:regular expression REGEXP
        基本正则表达式
          
          元字符:
        . 点:匹配任意单个字符
        []  :匹配任意指定范围内的单个字符
        [^] :匹配任意指定范围外的单个字符
        
          匹配次数:
        *  :匹配其前面的字符任意次数
        .* :表示任意长度任意字符
          :用来转义,转义字符
        ? :匹配其前面的字符1次或0次
        {m,n}:匹配其前面字符最少m次,最多n次,n可以省略,表示最多无限次,m不可以省略
        
        位置锚定:
        ^ :锚定行首,表示此字符后面的字符串必须出现在行首
        $ :锚定行尾,表示此字符前面的字符串必须出现在行尾
        ^$:表示空白行
        <或:锚定词首,其后的任意字符必须作为单词的首部出现
        >或:锚定词尾,其前的任意字符必须作为单词的尾部出现
        < >:其内的字符串必须以单个字符出现
        
        分组:
        ( ):将其内的字符串作为一个整体看待
         :调用前面第n个左括号以及与之对应的右括号没有匹配到的内容
        
            后向引用:将正则表达式前面的某个部分看做一个整体,在正则表达式的后面引用它
                将子表达式放在(STRING)内,单个模式里可包括至多9个子表达式,且可为嵌套结构
                (ab)(cd)[def]*21    可以匹配到abcdcdab  abcdeeeecdab  abcdddeeffcdab
                (why).*1               可以匹配一行里出现两次why
                (["']).*1              匹配单引号或双引号括起来的字符串
               
        BRE运算符的优先级,从高到低
        [..] [==] [::]      用于字符排序的方括号符号
                           转义字符
        []                  方括号表达式
        ()              分组与后向引用
        *  {}             前置单个字符重现的正则表达式
        无符号              连续
        ^ $                 位置锚定
      
        扩展正则表达式
       
            字符匹配:
            . 点:匹配任意单个字符
        []  :匹配任意指定范围内的单个字符
        [^] :匹配任意指定范围外的单个字符
        
        次数匹配:
        *  :匹配其前面的字符任意次数
        ? :匹配其前面的字符一次
        +  :匹配其前面的字符至少一次
        {m,n}:匹配其前面字符最少m次,最多n次,n可以省略,表示最多无限次,m不可以省略
        
        位置锚定:
        ^ :锚定行首,表示此字符后面的字符串必须出现在行首
        $ :锚定行尾,表示此字符前面的字符串必须出现在行尾
        ^$:表示空白行
        <:锚定词首,其后的任意字符必须作为单词的首部出现
        >:锚定词尾,其前的任意字符必须作为单词的尾部出现
        
        分组:
        ( ):将其内的字符串作为一个整体看待
         :调用前面第n个左括号以及与之对应的右括号没有匹配到的内容
             
        或者:| 交替
        例如 C|cat 表示C或者cat
        使用 | 时,左边的会一直扩展到运算符的左边,右边的也会一直扩展到运算符的右边
        有事 | 需要使用转义符转义,否则可能会被理解成管道
        root@ubuntu:/home/linlin/linlin/shell# egrep root|linlin /etc/passwd
        root:x:0:0:root:/root:/bin/bash
        linlin:x:1000:1000:linlin's ubunto,,,:/home/linlin:/bin/bash
        
        ERE运算符优先级,由高至低
        [..] [==] [::]      用于字符对应的方括号符号
                           转义字符
        []                  方括号表达式
        ()              分组与后向引用
        * + ? {}           重复前置的正则表达式
        无符号              连续
        ^ $                 位置锚定
        |                   交替
        
        POSIX字符集:
            [:alnum:]    数字字符
            [:alpha:]    字母字符
            [:blank:]    空格或Tab
            [:cntrl:]    控制字符
            [:digit:]    数字字符
            [:graph:]    非空格字符
            [:lower:]    小写字母字符
            [:upper:]    大写字母字符
            [:print:]    可显示字符
            [:punct:]    标点符号字符
            [:space:]    空白字符
            [:xdigit:]   十六进制数字

  • 相关阅读:
    hdu 2295 DLX
    hdu 4714 树形DP
    hdu 4711 动态规划
    hdu 3656 DLX
    hust 1017 DLX
    hdu 3938 并查集
    hdu 3652 打表
    poj 2152 树形DP
    洛谷P1266速度限制
    洛谷P1841重要的城市
  • 原文地址:https://www.cnblogs.com/lnlin/p/7072798.html
Copyright © 2011-2022 走看看