zoukankan      html  css  js  c++  java
  • re模块

    re模块的常用方法

    findall:找到字符串中所有符合条件的值装到一个列表中返回

    ret = re.findall("d+","23i43llfmdklfil3232")
    print(ret)  
    

      

    search:返回符合条件的第一个值

    ret = re.search('d+',"mfkdmfksml23290ioemdm44")
    print(ret.group())
    

      

    match:从字符串的开头开始寻找如果找到则返回值,第一个值不符合条件则报错

    ret = re.match('d+',"1mfkdmfksml23290ioemdm44")
    print(ret.group()) 
    

      

    sub:把后面字符串中符合条件的值修改为S #输出SSSSSSSSSSSS

    ret = re.sub("w","S","sssfdnkjnsnjd")
    print(ret) 
    

      

    subn:把后面字符串中符合条件的值修改为H,并返回元组,显示修改次数 #输出('mdlkasHkjhHkhkH', 3)

    ret = re.subn("d+","H","mdlkas8798792kjh2khk32")
    print(ret)
    

      

    split:把后面的字符串用符合条件的值切割,返回切割完的列表 #输出['dakjdk', 'jj', 'hj', 'h', '']

    ret = re.split("d+","dakjdk778832jj2hj3h2")#如果给正则表达式加上括号,将全部数据返回
    print(ret)  
    ret.remove("")
    print(ret)  #去掉列表中的空字符串
    

    compile:用来编码正则表达式,以节省时间,

    节省时间 : 只有在多次使用某一个相同的正则表达式的时候,这个compile才会帮助我们提高程序的效率
    r = re.compile("d+(.d+)?")
    ret = r.search("djadjnand2.3a3.4")
    print(ret.group())
    

    finditer:节省空间效率,节省内存

    ret = re.finditer('d','sjkhkdy982ufejwsh02yu93jfpwcmc')
    for r in ret:
        print(r.group())
    

      

    分组练习

    优先级

    import re
    #?:表示取消优先级,先找到字符串中的整数与小数,然后优先显示整数
    ret = re.findall("d*(?:.d+)|(d+)","1-2*(60+(-40.35/5)-(-4*3))")
    print(ret) #['1', '2', '60', '', '5', '4', '3']
    
    ret = re.findall(">(w+)<","<a>wahaha</a>")
    print(ret)   #优先显示括号里的   输出['wahaha']  括号里加?:   输出['>wahaha<']
    ret = re.findall("<(/?w+)>","<a>wahaha</a>")
    print(ret)   #输出['a', '/a'],括号里加?:  输出['<a>', '</a>']
    
    ret = re.search(r'<(w+)>(w+)</(w+)>',r'<a>wahaha</b>')
    print(ret.group())
    print(ret.group(1))  #显示第一个括号中内容
    print(ret.group(2))   #显示第二个括号中的内容
    

      

    分组命名

    第一种方法
    
    ret = re.search("<(?P<name>w+)>w+</(?P=name)>","<h1>hello</h1>")  #?P<name> =  给这个位置的字符串起个名字,后面的必须等于前面这个名字
    print(ret.group("name"))  #结果 :h1
    print(ret.group())  #结果 :<h1>hello</h1>
    第二种方法
    ret = re.search(r"<(w+)>w+</1>","<h1>hello</h1>") #用1命名,前面不用起名字,后面直接写1
    print(ret.group(1))
    # print(ret.group())  #结果 :<h1>hello</h1>  
    

      

      

  • 相关阅读:
    szoj657 【AHSDFZNOI 7.2 WuHongxun】Odd
    cogs2652 秘术「天文密葬法」
    bzoj1026 [SCOI2009]windy数
    bzoj1862/1056: [Zjoi2006]GameZ游戏排名系统
    java-PreparedStatement的用法
    java-JDBC登录注册代码
    java-String Date Calendar之间的转换
    java-如何用eclipse打包jar
    java-通过JDBC操作数据库
    java-JDBC配置驱动程序
  • 原文地址:https://www.cnblogs.com/duanpengpeng/p/9437656.html
Copyright © 2011-2022 走看看