• 正则表达式笔记


    正则表达式笔记

     

    说明:绿色:强调   红色:匹配结果

    1.贪婪与懒惰

    贪婪:   a.*b    aabab

    懒惰:   a.*?b   aabab

    2.重复

    *   :    0到多

    +   :    1到多

    ?   :    01

    {n,m} :     n到m

    {n,}  :     n到多

    {n}   :     n

    3.  []      :   单个匹配

    4.转义(查找元字符)

          .     www.dsdda.com

    5.分支(从左至右,懒惰)

    |     0d{2}-d{8}|0d{3}-d{7}    012-1234567899990123-1234567

    6.分组 与 向后引用

           后向引用用于重复搜索前面某个分组匹配的文本 从左向右,以分组的左括号为标志,第一个出现的分组的组号为1,第二个为2,以此类推

            (?<Word>w+)s+k<Word>    kitty kitty

           

    4.常用分组语法

    分类

    代码/语法

    说明

    捕获

    (exp)

    匹配exp,并捕获文本到自动命名的组里

    (?<name>exp)

    匹配exp,并捕获文本到名称为name的组里,也可以写成(?'name'exp)

    (?:exp)

    匹配exp,不捕获匹配的文本,也不给此分组分配组号

    零宽断言

    (?=exp)

    匹配exp前面的位置

    (?<=exp)

    匹配exp后面的位置

    (?!exp)

    匹配后面跟的不是exp的位置

    (?<!exp)

    匹配前面不是exp的位置

    注释

    (?#comment)

    这种类型的分组不对正则表达式的处理产生任何影响,用于提供注释让人阅读

      零宽断言(断言不算分组)

     (?=exp)   w+(?=ing)   I'm singing while you're dancing.

       (?<=exp)  (?<=re)w+  reading a book

       向零宽断言

    (?!exp)  ((?!abc)w)+   匹配不包含连续字符串abc的单词

    (?!exp)

    (?<=<(w+)>).*(?=</1>)   <b>大大</b>

    3. 元字符(特殊意义)

     : 分界,限定位置   hi    hihi hi hissa

    d : 一位数字         d       1231215

    w: 一位数字或英文字母

    ^ :  开始位置

    $ :  结束位置

    *

    +

    ?

    (

    )

    7.反义字符

    W  匹配一个不是字母,数字,下划线,汉字的字符

    S   匹配一个不是空白符的字符

    D   匹配一个非数字的字符

    B   匹配一个单词开头或结束的位置

    8.注释

    (?#comment)来包含注释。例如:2[0-4]d(?#200-249)|25[0-5](?#250-255)|[01]?dd?(?#0-199)

    要包含注释的话,最好是启用“忽略模式里的空白符”选项,空白字符以及#后面到这一行结束的所有文本都将被当成注释忽略掉。例如,我们可以前面的一个表达式写成这样:

          (?<=    # 断言要匹配的文本的前缀
          <(w+)> # 查找尖括号括起来的字母或数字(即HTML/XML标签)
          )       # 前缀结束
          .*      # 匹配任意文本
          (?=     # 断言要匹配的文本的后缀
          </1>  # 查找尖括号括起来的内容:前面是一个"/",后面是先前捕获的标签
          )       # 后缀结束

    参考:http://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaocheng.html

  • 相关阅读:
    Enter passphrase
    laravel扩展包-私有库
    php7中异常
    laravel-admin(自定义表单视图)
    laravel-admin(自定义表单与验证)
    ZJU校赛划水记
    bzoj 4762: 最小集合
    WC2017 颓废记
    bzoj 2337: [HNOI2011]XOR和路径
    bzoj 2870: 最长道路tree
  • 原文地址:https://www.cnblogs.com/goAhead-hust/p/3961625.html
Copyright © 2020-2023  润新知