美文网首页
【第59天】python全栈从入门到放弃

【第59天】python全栈从入门到放弃

作者: 36140820cbfd | 来源:发表于2019-09-28 20:45 被阅读0次

    1. findall()

    代码块
    import  re
    
    str_1='1342344jlksdkf438777'
    res_1=re.findall('\d+',str_1)
    print(res_1)    #['1342344', '438777']  返回所有的数字
    
    res_2=re.findall('\s+',str_1)
    print(res_2)    #[]  为什么字符串匹配就是空的呢。
    

    2 search()

    代码块
    import re
    
    ret2 = re.search('\d+','@$19874ashfk01248')
    
    print(ret2) #  返回值类型: 正则匹配结果的对象<re.Match object; span=(2, 7), match='19874'>
    #   返回值个数:1 如果匹配上了就返回对象
    
    if ret2:
        print(ret2.group()) # 返回的对象通过group来获取匹配到的第一个结果
    
    ret3 = re.search('\s+','hello19874ashfk01248')
    
    print(ret3) #  返回值类型: None  如果没有匹配上就是None
    

    3 match()

    代码块
    import  re
    
    ret4= re.match('\d+','19874ashfk01248')   #返回一个对象,<re.Match object; span=(2, 7), match='19874'>
    
    print(ret4.group())       #19874
    
    ret5 = re.match('\d+','%^19874ashfk01248')
    
    print(ret5)#none  必须开头就是匹配项才能匹配的上
    

    4 替换replace()

    代码块
    name='wangsiyu'
    res=name.replace('siyu','money')
    print(name)
    print(res)
    
    代码块
    import  re
    
    str_1='sdjglklk98753lkds80kl'
    res_1=re.sub('\d+','money',str_1)
    print(str_1)   #sdjglklk98753lkds80kl
    print(res_1)   #sdjglklkmoneylkdsmoneykl
    
    res_2=re.subn('\d+','money',str_1)
    print(res_2)    #('sdjglklkmoneylkdsmoneykl', 2)   返回结果,和替代的个数。
    

    6切割split()和联合join()

    代码块
    a='wang|si|yu|'.split('|')    #把字符串转为列表
    print(a)   #['wang', 'si', 'yu', '']
    res='-'.join(a)   #把列表转为字符串
    print(res)   #wang-si-yu-
    
    #正则表达式来切割
    import  re
    b='wang54si67yu456today'
    
    res=re.split('\d+',b)
    
    print(res)   #['wang', 'si', 'yu', 'today']
    

    7.compile和finditer

    compile 把正则表达式编译起来复用

    代码块
    # compile时间效率 : 只有在多次使用某一个相同的正则表达式的时候,这个compile才会帮助我们提高程序的效率
    import re
    
    
    res_1=re.findall('\d','alex83egon20taibai40')
    
    print(res_1)    #['8', '3', '2', '0', '4', '0']
    
    ret = re.compile('\d')#将这个正则表达式编译起来重复用
    
    res = ret.search('alex83egon-20taibai-40')
    #
    print(res.group())
    

    finditer

    代码块
    # finditer  空间效率
    
    import  re
    ret = re.finditer('\d','sjkhkdy982ufejwsh02yu93jfpwcmc')
    
    for r in ret:
    
        print(r.group())
    

    相关文章

      网友评论

          本文标题:【第59天】python全栈从入门到放弃

          本文链接:https://www.haomeiwen.com/subject/wwswectx.html