• 正则表达式基本规则


    ## 正则表达式用于对字符串内容进行匹配和查找,是后续修改、替换、判断等操作的基础


    ## 基本规则


      - 择一匹配:(|), 例如 a|b 表示匹配一个a或者一个b


      - 单一任意字符匹配: (.),表示除了换行符( )之外的任意单一字符,包括大小写字母、数字、空格、可打印字符、不可打印字符等。例如:a.b 可以匹配 aab, a2b, a#b等。如果要匹配 (.),则需要使用反斜线()进行转义 如 .


      - 起始匹配:(^),例如 ^abc 可以匹配以abc开头的字符串


      - 末尾匹配: ($),例如 .com$ 可以匹配以 .com 结尾的字符串,可以与(^)连用,如:^abc$ 表示任何由单独的字符串 abc 构成的字符串


      - 边界匹配:( 或 B), () 和 (B)具有相反意义, 例如: abc 表示任意由abc开头的字符串, abc 表示仅由abc构成的字符串,Babc表示含有abc但是不以abc开头的字符串


      - 字符集: ([]),使用中括号表示属于某个字符集的单个字符,例如:[abcd] 可以匹配a, b, c, d中的一个


      - 范围限定:([]),通过在字符集中添加内容限定范围,例如:[A-Z][a-z][0-9]分别表示单个大写字母、小写字母和数字


      - 范围否定:([^]),前中括号后紧跟一个^表示不含某个范围内的所有字符,例如:[^A-Za-z]表示匹配任意不含字母的字符串


      - 频次匹配:({N}),大括号中一个数字表示前面的正则表达式出现N次,例如:[0-9]{11}表示匹配11个数字,[0-9]{10,20}表示匹配10~20个数字


      - d与D:(d)匹配单个数字相当于[0-9],(D)匹配单个非数字,相当于[^0-9]


      - w与W: w匹配任意单个字母或数字,相当于[A-Za-z0-9], W相当于[^A-Za-z0-9]

      - s与S: s是指空白,包括空格、换行、tab缩进等所有的空白,而S刚好相反,这样一正一反下来,就表示所有的字符,完全的,一字不漏的。



      - (*) 星号匹配0次或多次前面出现的正则表达式(可以多次,也可以一次都没有)


      - (+) 加号匹配1次或多次前面出现的正则表达式(至少有一次)


      - (?) 问号匹配0次或一次前面出现的正则表达式(可以有,也可以没有)



      - 使用括号分组,例如:d(.d+)? 可以匹配数字,包括2, 2.22 等整数和小数


      - 扩展表示:(?), 小括号中紧跟一个问号,问号后更匹配条件,例如:

        - (?:...) 非捕获分组


        - (?:w+.)* 匹配 abc. python. 等以 . 结尾的字符串


        - (?#comment) 正则中的注释,不作匹配


        - (?=.com) 如果一个字符串后面跟着 .com 才做匹配操作


        - (?!.net) 如果一个字符串后面跟着的不是 .net 才做匹配操作


        - (?<=abc) 如果一个字符串前面是 abc 才做匹配操作


        - (?<!abc) 如果一个字符串前面不是 abc 才做匹配操作


        - (?(1)a|b) 如果一个匹配组 1(1)存在,就与 a 匹配;否则,就与 b 匹配


    参考内容:
      《Python核心编程(第3版)》 [美] Wesley Chun 著,孙波翔、李斌、李晗 译

  • 相关阅读:
    osgi:设置httpservice端口号
    osgi: HttpService A null service reference is not allowed.
    Java Web中涉及的编解码
    http协议之cookie标准RFC6265介绍
    信息传输完整性、保密性、不可抵赖性实现
    web开发基础--字节序
    结构体
    ArrayList和LinkedList的some东东
    循环---匹配
    关于游戏的留存率想到的
  • 原文地址:https://www.cnblogs.com/hycstar/p/9300736.html
Copyright © 2020-2023  润新知