• 正则表达式语法


    1、行的起始和结束

    ^:表示一行的开始
    ^cat:匹配的是以c作为一行的第一个字符,紧接着一个a,紧接一个 t 的文本
     $:表示文本以什么结束
     

    2、字符组

    1)匹配若干个字符之一

    gr[ae]y:先找到 g ,跟着是一个 r,然后是一个 a 或 e,最后一个 y

     
    <h[1-3a-b]>:‘-’(连字符),用来表示一个范围
     

    2)排除型字符组

    <h[^2^4^d]>: ‘^’表示排除
     

    3、用点号匹配任意字符

    03.19.76:点号表示匹配任意字符
     

    4、多选结构

    匹配任意子表达式

    |:或,依靠它,能够把不同的子表达式组成一个总的表达式,而这个总的表达式又能够匹配任意的子表达式。
    Jeff(re|er)y:先匹配 Jeff 然后 是 re 或 er 最后 y
     

    5、可选元素

    July? (fourth|4th) :问号表示可选项,即 y 这个字符可以存在也可以不存在
     

    6、其它量词:重复出现

    <h1 +color *= *"red" *> : 
    加号是表示加号之前的字符必须出现,并且重复无数次,这里表示 h1 后面必须有一个空格。
    星号表示星号之前的字符可以不出现,但是出现必须是前面的字符并且可以出现无数次。这里表示 color 之后可以有空格并且可以有无数个,也可以没有空格

    1)规定重现次数范围:区间

    w{1,2}:表示w至少出现一次,最多出现2次
     
     

    2)表示重复的元字符小结


    次数下限次数上限含义
    可以不出现,也可以只出现一次(单次可选)
    *可以出现无数次,也可以不出现(任意次数均可)
    +1可以出现无数次,但至少要出现一次(至少一次)

    7、括号及反向引用

    ([a-z])([1-9])12 :表示第一个字符范围为 a 到 z,第二个字符范围为 1 到 9,第三个字符与第一个括号的值一样,第四个字符与第二个括号的值一样。
    括号能够“记忆”其中的子表达式匹配的文本值,不论这个文本是什么,元字符列  ‘1’ 可以记住他们。
     

    8、转义

    www.baidu.com :将元字符 点 转义为普通的字符
     

    9、总结



    匹配单个字符的元字符

    元字符匹配对象
    .点号匹配单个任意字符
    [...]字符组匹配单个列出的字符
    [^...]排除型字符组匹配单个列出的字符
    char转义字符若char是元字符,或转义序列无特殊含义时,匹配char对应的普通字符
    提供计数功能的元字符
    ?问号容许匹配一次,单非必须
    *星号可以匹配多次,也可能不匹配
    +加号至少需要匹配一次,至多可能任意多次
    {min,max}区间量词至少需要min次,至多容许max次
    匹配位置的元字符
    ^脱字符匹配一行的开头位置
    $美元符匹配一行的结束位置
    <单词分界符匹配单词的开头位置
    >单词分界符匹配单词结束位置
    其它元字符
    |alternation匹配一行的开头位置
    (...)括号限定多选结构的范围,标注量词作用的元素,为反向引用“捕获”文本
    1,2反向引用匹配之前的第一,第二组括号内的字表达式匹配的文本










  • 相关阅读:
    (原创)C++ 同步队列
    (原创)用C++11的std::async代替线程的创建
    C语言宏应用-------#define STR(X) #X
    c++中数据表如何转成业务实体--map和结构体的相互转换
    线程池的陷阱
    java中map和对象互转工具类的实现示例
    3.python元类编程
    人生苦短,我用python(目录)
    11.多线程、多进程和线程池编程
    10.python3实用编程技巧进阶(五)
  • 原文地址:https://www.cnblogs.com/caizheng/p/6155171.html
Copyright © 2020-2023  润新知