• re模块


    一.简介

         用于string的模糊匹配,而string内置的方法是精确匹配。

    二.字符匹配

    1  普通字符

           用于精确匹配

    2   元字符

         .   ^   $   *   +   ?  { }  |  ( )  

       .   通配符除 其余均可匹配

        ^  位置匹配,表示开始   $ 表示结束

    import  re
    ret=re.findall("^af","afghaf")
    print(ret)
    ret=re.findall("af$","afdfggaf")
    print(ret)

      *,+,?,{}均表示重复次数

      *   0~+oo

    +   1~+oo

    ?   1或0

    {n,m} 表示n~m次   {1,}表示1到正无穷

        [ ]一次只能匹配一个,可以表示一个匹配集,又有取消元字符的功能

        [ ]中的特殊字符:  ^取反  -表示范围

    import re
    ret = re. findall(  "[^4,5]" ,  "dgg4ffd5dd" )
    print(ret)
    ret = re. findall("[^a-z,4,5]" ,"sccf5673374"  )
    print(ret)

        :后面跟元字符,去除其特殊化,后面跟普通字符,增加特殊功能。

       d   D 表示数字  [0-9]   s  S表示空白字符[ fv]

       w W表示[a-zA-Z0-9]   匹配一个特殊字符的边界,而不是匹配特殊字符(这里的特殊字符是非字母和数字的)

    import re
    ret = re.findall(r "I","hello I am a LI$T")
     print(ret)
    ret = re.findall("a\\","asgvff")#匹配反斜杠
    print(ret)
    

      四个反斜杠,Python解释一个需要2个,re模块对这2个进行转义要4个。

    ( ):表示分组

    import re
    ret = re.search("(?p<id>d{11}),(?p<name>[a-z]*)     ","1445676556777567785ffhtfcg6")
    
    
    
    ret1=ret.group("id")
    ret2 = ret.group("name")
    print(ret1,ret2)

    |:表示或者用于分组

     三.re 模块的函数

      1.re.findall(匹配模型,母串)//贪婪匹配找到所有匹配的,返回一个列表。

      2.re.search(匹配模型,母串)#只匹配一个,以对象的形式返回,用group()函数获取对象的内容。

      3,re.match(匹配模型,母串)#同search只不过,仅匹配开始的地方,

      4.group(分组的名称)#该函数可以不带参数,一般与search和match搭配使用。

    import re
    #5
    ret=re.split('[ab]',"abcd")    #先按‘a'进行分割得到’bcd',再对bcd按‘b'进行分割
    print(ret) #["","","cd"]
    ret=re.sub('d',"abc","alivf4jhj6",1)    #替换函数,最后一个参数是指定替换几次
    print(ret)
    ret=re.subn('d',"abc","alivf4jhj6")    #替换所有满足条件的,并返回替换的次数
    print(ret)    #("alivvfabcjhjabc",2)
    ret=re.complex("[ab]") #将一种匹配规则转换成一个对象。

    四,惰性匹配

      前面的* + ?都是贪婪匹配,后面加上?使其变成惰性匹配。

  • 相关阅读:
    redis的两种备份方式
    Vue—事件修饰符
    css3实现颤动的动画
    初学者可能不知道的vue技巧
    使用slot-scope复制vue中slot内容
    pre-commit钩子,代码质量检查
    爬虫可视化点选配置工具之获取鼠标点选元素
    Vue源码探究-事件系统
    使用electron实现百度网盘悬浮窗口功能!
    electron实现qq快捷登录!
  • 原文地址:https://www.cnblogs.com/gjx1212/p/11731395.html
Copyright © 2020-2023  润新知