• 正则表达式的常用语法


    “正则表达式”描述在搜索文本正文时要匹配的一个或多个字符串。 该表达式可用作一个将字符模式与要搜索的字符串相匹配的模板。

    正则表达式包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”)。

    特殊字符

    若要匹配这些特殊字符之一,必须首先转义字符,即,在字符前面加反斜杠字符 ()。 例如,若要搜索“+”文本字符,可使用表达式“+”。

    元字符 行为 示例
    * 0次或者多次匹配前面的字符或者子表达式,等价于{0,} ta*可以和t , ta taaaaa进行匹配
    + 1次或者多次匹配前面的字符或者子表达式,等价于{1,} ta+可以和ta taaaaa进行匹配

    0次或者1次匹配前面的字符或者子表达式,等价于{0,1},

     

    当?紧随其他符号的时候,会启用非贪婪模式

     

    ta?可以和t , ta进行匹配

     

    ta*?和taaaaa进行匹配时,会匹配t;但是ta?和taaaaa

    进行匹配时会匹配ta

    ^

    匹配字符串开始的位置,表示从字符串的初始位置开始寻找

     

    当放在[]里面时,代表不匹配[]其中的字符

     

    ^d{2}表示匹配字符串从头开始的2个数字

     

    [^abc]代表不匹配a,b,c三个任意元字符

     

    $ 匹配字符串结束的位置,表示字符串的结束位置 d{2}$匹配结尾处的两个数字
    . 匹配除了换行符 的任意单个字符 如果需要匹配换行符,则要写成[sS]类似的 b.b与bob,bsb都可以匹配
    [] 匹配[]中的任意一个字符 [abcd]匹配a,b,c,d中的任何一个
    {} 表示重复前面字符的重复次数 a{2,4}匹配aa,aaa,aaaa
    () 表示一组 (a*)ccc 匹配ccc和accc
    | 表示在多个选项之间进行选择 a|b|c等价于[abc]
    对于上面的这些字符都有特殊含义,如果想要找到不是特殊含义的,可以加来进行转义 \ 与匹配   +与+匹配
    / 代表正则表达式的开始和结尾 /book+/ig

    元字符

    有一些特殊的字符

    元字符 行为 示例
     与一个字的边界匹配,就是字与空格间的位置 er与never中的er匹配,但是与verb中的er不匹配
    B 不与一个字的边界匹配,就是字与空格间的位置 erB与never中的er不匹配,但是与verb中的er匹配
    d 等效于 [0-9] d{2,4}与12,123,1234匹配
    D 等效于 [^0-9] D{2,4}与AC,ASCF匹配
    w 等效于 [A-Za-z0-9_]  
    W 等效于 [^A-Za-z0-9_]  
    (模式) 与模式匹配,并保存匹配项 (chapter)[1-9]匹配chapter4时,会保存chapter以方便以后用
    (?:模式) 与模式匹配,但是不保存匹配项  
    (?=模式)

    找到一个匹配项后,将在匹配文本之前开始搜索下一个匹配项。

     不会保存匹配项以备将来之用。

    ^(?=.*d).{4,8}$ 对密码应用以下限制:其长度必须介于 4到 8 个字符之间,

    并且必须至少包含一个数字。

    在该模式中,.*d 查找后跟有数字的任意多个字符。 对于搜索字符串“abc3qr”,这与“abc3”匹配。

    从该匹配项之前(而不是之后)开始,.{4,8} 与包含 4-8 个字符的字符串匹配。

    这与“abc3qr”匹配。

    ^ 和 $ 指定搜索字符串的开始和结束位置。 这将在搜索字符串包含匹配字符之外

    的任何字符时阻止匹配。表示先做(?=)中的表达式,然后再对整体做?=模式之后的正则表达式

    优先级

    下图从高到低的讲了一下运算符的优先级排序

    运算符 说明
    进行转义字符
    (),(?:),(?=) 括号和中括号
    *,+,?,{n,} 限定符
    ^,$,d,D,w,W 定位点和序列
    | 替换
  • 相关阅读:
    sql2012,返回数据多时不走索引
    JeeSite 工作流Activiti的应用实例
    A011 Activiti工作流程开发的一些统一规则和实现原理(完整版)
    mstsc远程桌面全频或自定义窗口
    ECLIPSE 取消自动更新
    js中设置元素class的三种方法小结
    python笔记28-lxml.etree爬取html内容
    python笔记27-lxml.etree解析html
    Locust性能测试3-no-web模式和csv报告保存
    Locust性能测试2-先登录场景案例
  • 原文地址:https://www.cnblogs.com/bless19946/p/5869187.html
Copyright © 2020-2023  润新知