正则表达式

正则表达式
    REGEXP:Regular Expressions,由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能
    程序支持:grep,sed,awk,vim,less,nginx,varnish等
    分两类
        基本正则表达式:BRE
        扩展正则表达式:ERE
            grep -E,egrep
    正则表达式引擎
        采用不同算法,检查处理正则表达式的软件模块
        PCRE(Perl Compatible Regular Expressioins)
    元字符分类:字符匹配、匹配次数、位置锚定、分组
    man 7 regex

基本正则表达式元字符
    字符匹配:
        .           匹配任意单个字符
        []          匹配指定范围内的任意单个字符,示例:[wang] [0-9] [a-z] [a-zA-Z]
        [^]         匹配指定范围外的任意单个字符
        [:alnum:]   字母和数字
        [:alpha:]   代表任何英文大小写字符,即A-Z,a-z
        [:lower:]   小写字母
        [:upper:]   大写字母
        [:blank:]   空白字符(空格和制表符)
        [:space:]   水平和垂直的空白字符(比[:blank:]包含的范围广)
        [:cntrl:]   不可打印的控制字符(退格、删除、警铃...)
        [:digit:]   十进制数字
        [:xdigit:]  十六进制数字 
        [:graph:]   可打印的非空白字符
        [:print:]   可打印字符
        [:punct:]   标点符号

正则表达式
    匹配次数:用在要指定次数的字符后面,用于指定前面的字符要出现的次数
        *       匹配前面的字符任意次,包括0次
                    贪婪模式:尽可能长的匹配
        .*      任意长度的任意字符
        \?      匹配其前面的字符0或1次
        \+      匹配其前面的字符至少1次
        \{n\}   匹配前面的字符n次
        \{m,n\} 匹配前面的字符至少m次,至多n次
        \{,n\}  匹配前面的字符至多n次
        \{n,\}  匹配前面的字符至少n次
    位置锚定:定位出现的位置
        ^           行首锚定,用于模式的最左侧
        $           行尾锚定,用于模式的最右侧
        ^PATTERN$   用于模式匹配整行
            ^$  空行
            ^[[:space:]]*$  空白行
        \< 或 \b 词首锚定,用于单词模式的左侧
        \> 或 \b 词尾锚定,用于单词模式的右侧
        \ 匹配整个单词
    分组:\(\) 将一个或多个字符捆绑在一起,当做一个整体处理,如:\(root\)\+
    分组括号中的模式匹配到的内容会被正则表达式引擎记录于内部的变量中,这些变量的命名方式为:\1,\2,\3,...
    \1 表示从左侧起第一个左括号以及与之匹配右括号之间的模式所匹配到的字符
    示例:
        \(string1\+\(string2\)*\)
        \1 :string1\+\(string2\)*
        \2 :string2
    后向引用:引用前面的分组括号中的模式所匹配字符,而非模式本身
    或者:\|
        示例:
            a\|b:a或b C\|cat:C或cat \(C\c\)at:Cat或cat

egrep及扩展的正则表达式
    egrep = grep -E 
    egrep [OPTOINS] PATTERN [FILE...]
    扩展正则表达式的元字符:
    字符匹配:
        .   任意单个字符
        []  指定范围的字符
        [^] 不在指定范围的字符

扩展正则表达式
    次数匹配:
        *     匹配前面字符任意次
        ?     0或1次
        +     1次或多次
        {m}   匹配m次
        {m,n} 至少m,至多n次

扩展正则表达式
    位置锚定:
        ^       行首
        $       行尾
        \<,\b   语首
        \>,\b   语尾
    分组:
        ()
        向后引用:\1,\2,...
    或者:
        a|b         a或b
        C|cat       C或cat
        (C|c)at     Cat后cat

你可能感兴趣的:(正则表达式)