• Python 正则表达式


    看http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html后作的一个记录。

    一、正则表达式的符号:

      (1)字符:

          .  表示任意字符

            转义字符

          []    表示从[]中取值

      (2)预定义字符集:

          d  数字[0-9]

          D  非数字

          s  空白字符 [<space>, fv]

          S  非空白字符

          w  字符 [A-Za-z0-9]

          W  非字符

      (3)数量词:

          *  重复前面一个字符0-n次

          +  重复前面一个字符1-n次

          ?  重复前面一个字符0-1次

          {m} 重复前面一个字符m次

          {m, n} 重复前面一个字符m-n次,m,n可以省略一个,省略m表示0,省略n表示无限次

      (4)边界匹配:

          ^  匹配字符串的开头,在多行模式中也可匹配每一行的开头

          $  匹配字符串的结尾,在多行模式中也可匹配每一行的结尾 

          A  仅匹配字符串的开头

            仅匹配字符串的结尾 

            匹配w与W之间,即匹配字符的开头(不能说是开头,但是却是匹配出的字符串的开头),非字符的结尾,组合而成的字符串。如

             eg: a ,    在“asfq!z”中匹配,则得到的结果是"asfq"

          B     的取反

       (5)逻辑与分组:

          |    取示取其中的一个 如(123|456)

          (...)   即可以将前面当成一个整体,相当于一个括号的作用,  与  “|” 合用,   分组(即可以将括号中的这一部分数据作为一个分组,输出)

          (?P<Name>... )  将“...”分组,并且命名为Name,   eg:    (?P<id>abc)xx,表示将匹配到的abc这一部分进行分组,并且命名为id

          <Number>  表示将分组后,索引号为Number的字符 eg:    1   表示引用编号为1所匹配到的字符串

       (6)不分组

          (?:...), 表示不将“...”的内容分组,而是当是一个整体或者用作“|”的一部分

          (?#...),表示"..."的内容将被忽略

          (?=...),表示之后的内容为“...” , eg   a(?=d),  表示a的后面必须是数字,如  a1

           (?!...) ,  表示之后的一个字符不是“...”

          (?<=...),表示之前的一个字符是“...”

          (?<!...),表示之前的字符不匹配“...”, eg (?<!d)a, 表示a前面不是数字才以匹配

          (?(id/name) yes_pattern | no_pattern),如果编号为id或者name的组匹配到字符,则需要匹配yes_pattern,否则则匹配no_pattern


    r 放在字符串前,表示不转义

  • 相关阅读:
    从CentOS7默认安装的/home中转移空间到根目录/
    Linux下MySQL默认对表名区分大小写
    maven获取最新的快照版本
    使用javaMail发送邮件
    Jenkins配置邮件通知(四)
    webhook实现提交代码自动触发Jenkins构建任务(三)
    Jenkins构建完成后自动部署到指定服务器(二)
    搭建Jenkins从gitlab获取maven项目持续集成(一)
    awt frame
    什么是json
  • 原文地址:https://www.cnblogs.com/wang-can/p/3579042.html
Copyright © 2020-2023  润新知