zoukankan      html  css  js  c++  java
  • 正则表达式

    一、元字符

      1、.表示匹配任意单个字符;

      2、[]表示字符种类,如0-9,a-z,A-Z,表示范围;

      3、[^]里面的^表示匹配的是除[]内的其他字符;

      4、*表示匹配>=0个字符,如/abc*/表示匹配ab后面跟任意个c;

      5、+表示匹配>=1个字符,如/abc+/表示匹配ab后面跟至少1个c;

      6、?表示匹配的这个字符可有可无,如/abc?/表示匹配的是ab或abc;

      7、{n, m}表示匹配的字符数num为n<=num<=m,

        如/abc{2, 3}/表示匹配ab后跟2~3个c,/abc{2,}表示匹配ab后跟至少2个c。

      8、(xyz)表示字符集,只匹配xyz这个字符串;

      9、|表示或,如(a|b)表示匹配的是a或b;

      10、^$分别表示匹配字符串的开头和结尾,如/^<[div|span]>$/表示匹配的是<div>或<span>;

      11、转义字符,用来匹配一些保留字符[](){}.*+?^$/。

    二、锚点

      用来指定开头和结尾,使用^和$来实现。

    三、简写字符集

      

    四、零宽度断言(以下为我自己的理解,正表存在,负表排除)

      1、(?=...),正先行断言,判断匹配表达式后面是否存在...,匹配到的表达式后面需要存在...;

      2、(?!...),负先行断言,判断匹配表达式后面是否存在...,匹配到的表达式后面排除...,也就是不存在...才符合;

      3、(?<=...),正后发断言,判断匹配表达式前面是否存在...,匹配到的表达式前面需要存在...;

      4、(?<!...),负先行断言,判断匹配表达式前面是否存在...,匹配到的表达式前面排除...,也就是不存在...才符合。

    五、标志

      1、i表示忽略大小写;

      2、g表示全局搜索;

      3、m为多行修饰符,表达式内^$工作范围在每行的起始。

    六、贪婪/惰性匹配

      正则表达式默认会启用贪婪匹配,尽可能多的匹配长的字符,如果不想要贪婪匹配则需要加上?开启惰性匹配,其区别如下所示。

      被匹配字符串:abcabc

      贪婪匹配写法:/(.*bc)/ ——匹配到字符串:abcabc

      惰性匹配写法:/(.*?bc)/ ——匹配到的字符串:abc

    (内容来源于正则表达式github地址:learn-regex/README-cn.md at master · ziishaned/learn-regex · GitHub

  • 相关阅读:
    设定cookie 获取cookie数据的转换
    cookie cookie的获取
    常见的请求方式 json字符串
    请求报文和响应报文
    http协议
    php分页查询 子查询
    MAC 地址为什么不需要全球唯一
    ceph分布式存储简介
    一文看懂为什么边缘计算是大势所趋
    真香!Windows 可直接运行 Linux 了
  • 原文地址:https://www.cnblogs.com/atao24/p/15075704.html
Copyright © 2011-2022 走看看