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

    正则表达式

    1、字符匹配

    1.1 普通字符

          大多数字母和字符一般都会和自身匹配

          如正则表达式 test会和字符串 "test"完全匹配

    1.2 元字符

        .  ^  $  *  +  ?  {}   [ ]     |   ()

       1) [ ]   

       --常用来表达一个字符集  

       --元字符在字符集中不起作用

       -- 补集匹配不在区间范围内的字符

       Exp:  s =' t[io]p'  t = 'top tip tep trp' re.findall(s,t) 

       Exp:  r =r 'x[0-9]x'   re.findall(r,'x3x')

      2) ^     -- 匹配行首

       。 除非设置multiline标志,它只是匹配字符串的开始。在MULTILINE模式里,它也可以直接匹配字符串中的每个换行。

        r = '^hello'   s = 'hello the world'  re.findall(r,s)   result : ['hello']

      3)$   -- 匹配行尾

        行尾被定义为要么是字符串尾,要么是一个换行字符后面的任何位置。 

       

      4)   -- 反斜杠后面可以加不同的字符以表示不同特殊意义

      5) *    --指定前一个字符可以被匹配零次或更多次,而不是只有一次。匹配引擎会试着重复尽可能多的次数。(不超过整数界定范围,20亿次)

          - a[bcd]*b -- "abcbd"

      6) +   -- 表示匹配一或更多次。

             --注意* 和 + 之间的不同; * 匹配零或更多次,所以可以根本就不出现,而+则要求至少出现一次。

           r = r"ab+"

           re.findall(r,'abbb')
           ['abbb']

      7) ?  --匹配一次或零次;你可以认为它用于标识某事物是可选的

         r = r"^010-?d{8}$"

         re.findall(r,'01012345678')

        result:['01012345678']

    8){m,n} 

        -- 其中m和n是十进制整数。 该限定符的意思是至少有m个重复,至多到n个重复。

        -- 忽略m会认为下边界是0,而忽略n的结果将是上边界为无穷大(实际上是20亿)

        -- {0,}等同于 *,(1,)等同于+,而{0,1}则与?相同。 如果可以的话,最好使用 * , + ,或 ?表示。 

  • 相关阅读:
    centos8 安装zabbix
    nginx添加开机启动
    redis 开机自启动
    oracle用cmd命令导入导出dmp文件
    oracle导入导出dmp文件的流程
    python中的静态函数与类函数区别与联系
    python中的类
    python解释器的安装和配置教程图集
    pycharm开发工具的安装和配置教程图集
    python占位符的使用以及宽度与精度的约束
  • 原文地址:https://www.cnblogs.com/monjeo/p/7798273.html
Copyright © 2011-2022 走看看