• linux正则


    正则表达式


    分两类:  基本正则表达式:BRE  扩展正则表达式:ERE ;grep -E, egrep 

    正则表达式引擎:  采用不同算法,检查处理正则表达式的软件模块       PCRE(Perl Compatible Regular Expressions


    基本正则表达式的元字符

    字符匹配:  .    匹配任意单个字符  
    []   匹配指定范围内的任意单个字符  
    [^]  匹配指定范围外的任意单个字符 
    [: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:]]*$  空白行  
    < 或  词首锚定,用于单词模式的左侧  
    > 或  词尾锚定;用于单词模式的右侧  
    <PATTERN> 匹配整个单词     
    

    正则表达式分组

    分组:() 将一个或多个字符捆绑在一起,当作一个整体进行处理,如: (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扩展正则表达式

    1.字符匹配: 
     . 任意单个字符  
    [] 指定范围的字符  
    [^] 不在指定范围的字符
    
    2.次数匹配
    
    *:匹配前面字符任意次  
    ?: 0或1次  +:1次或多次  
    {m}:匹配m次  
    {m,n}:至少m,至多n次
    
    3.位置锚定
    
    位置锚定:  
        ^  :行首  
        $  :行尾  
        <,  :语首  
        >,  :语尾 
    分组:     
        ()    
        后向引用:1, 2, ... 
    或者:  
        a|b: a或b  
        C|cat: C或cat  
        (C|c)at:Cat或cat 
    

      


    本文为原创文章,转载请标明出处
  • 相关阅读:
    Android 调用已安装市场,进行软件评分的功能实现
    二十六个月Android学习工作总结
    Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1) 错误 解决方案(android-ndk)
    【Android】神奇的android:clipChildren属性
    Android利用setLayoutParams在代码中调整布局(Margin和居中)
    android 使用代码实现 RelativeLayout布局
    Android 布局学习
    Erlang cowboy 处理不规范的client
    HTTP 响应
    把字符串转换为整数
  • 原文地址:https://www.cnblogs.com/harden13/p/8594991.html
Copyright © 2020-2023  润新知