• POSIX.2 正则表达式


    By francis_hao    Oct 1,2017

     

    这里的正则表达式主要是指扩展正则,也就是egrep(grep -e)用到的正则表达式。

    字符

    含义

    类别说明

    |

    分割分支,正则表达式会去匹配每个分支。一个正则表达式就是由一个或多个分支组成。

     

    *

    跟在原子数据后,匹配0个或多个原子数据

    *、+、?和bond是分支的基本组件,若干个这样的组件串接起来形成一个分支。

    +

    跟在原子数据后,匹配1个或多个原子数据

    ?

    跟在原子数据后,匹配0个或1个原子数据

    {m,n}

    范围带(bond),可能的形式有:{m}、{m,}和{m,n}。m和n的取值范围为0~RE_DUP_MAX(255)。跟在原子数据后,匹配m-n个原子数据。

    ()

    用()将原子数据包含起来,表示一个子匹配。一个空的()匹配一个空串。

     

    .

    匹配任意一个字符。

     

    ^

    匹配行首

     

    $

    匹配行尾

     

    转义字符,可转义字符:"^.[$()|*+?{",对于其他字符,""无意义(相当于没有)

    {字符在后面跟了不是数字的字符时,表示一个普通字符,不需要转义。

    正则表达式不能以""字符结尾。

     

    []

    表示匹配被[]括起来的字符集里的任意一个字符。

    • 如果集合以^开头,则表示匹配不是此字符集里的任意一个字符
    • 字符集可以使用"-"以简化表示,如[0-9]表示数字字符集
    • 如果字符集包含"]",将它放在第一个位置,可以跟在"^"后面(如果有)
    • 被"[:"和":]"括起来的字符类的名字,表示此类的字符集合,字符类名有:alnum digit punct alpha graph space blank lower upper cntrl print xdigit(定义在wctype(3))
     

    正则匹配遵循最长匹配原则

     

     


    本文由 刘英皓 创作,采用 知识共享署名-非商业性使用-相同方式共享3.0中国大陆许可协议 进行许可。欢迎转载,请注明出处:
    转载自:http://www.cnblogs.com/yinghao1991/p/7617004.html

     

     

    参考

    【1】man 7 regex

  • 相关阅读:
    省市级联
    innerText与innerHTML的区别
    使用代码提交表单
    Date的使用
    Array(数组)的使用
    [贪心]Rest Stops
    [数论][Miller_Rabin] Goldbach
    [简单思维题]Hoofball
    [数论][容斥原理]Co-prime
    [图论][二分图最大匹配]Courses
  • 原文地址:https://www.cnblogs.com/yinghao-liu/p/7617004.html
Copyright © 2020-2023  润新知