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

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


    ## 基本规则


      - 择一匹配:(|), 例如 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 著,孙波翔、李斌、李晗 译

  • 相关阅读:
    Mysql 数据库优化(五)sql语句优化【个人经验】转
    C# 编写的winform程序的托盘功能
    Mysql 数据库‘’函数‘、‘’事件‘’完成时间字段自动更新
    dd
    c# ‘using’三种用法
    集群、分布式、负载均衡
    iOS开发- Xcode 7添加pch文件
    iOS开发-pod install 出错 The dependency `AFNetworking (~> 2.6.0)` is not used in any concrete target.
    leetcode -- Find Median from Data Stream
    ubuntu14.04 LTS 更新源
  • 原文地址:https://www.cnblogs.com/hycstar/p/9300736.html
Copyright © 2011-2022 走看看