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

    import  re

    # ret1 = re.findall("d","1987adfa324244") #获得一个列表
    # print(ret1)
    #----------------------练习---------------
    # ret1 = re.findall("d+","181ddhdhd28287228fhdhd2727")
    # print(ret1)
    #
    #-------------------------------------------------------------
    # ret2 = re.search("d*","a1987adfa324244") # 获得一个 <class '_sre.SRE_Match'> 获得数据 ret2.group()
    # print(type(ret2))
    # print(ret2.group())
    #---------------------练习----------------------------------
    # ret2 = re.search("d+","saa6868ggiu698698gugi9866") # 无论是否从头开始,匹配第一个符合正则表达式的
    # print(ret2.group())

    # ret2 = re.search("d+","aaa197fjjdd28282fjdjd1222")
    # print(ret2.group())

    #---------------------------------------------------------------
    # ret3 = re.match("d+","aa1987adfa324244") # 相当于在正则表达式前面加上^ ,从头开始匹配
    # print(ret3.group())
    #-----------------------------------------练习--------------------------
    # ret3 = re.match("d+","78797hhhhanna6899aaiaa") # 从开头开始匹配,是否和正则表达式相匹配(也是只找一个),如果不存在就报错.
    # print(ret3.group())
    #---------------------------------------------------------------
    # ret = re.sub("d+","H","197787aaga27387") # 使用正则表达式匹配找到要替换的东西,"H" 是要替换的东西, "197787aaga27387" 是要替换的字符串
    # print(ret)

    # 0--------------------------------- 练习 ---------------------------
    # ret = re.sub("d+","H","678iuggjg687687") #找到正则表达式匹配的数据,并且使用"H"替换掉,并且打印出替换后的字符串
    # print(ret)
    #---------------------------------------------------
    # ret = re.subn("d+","H","197787aaga27387") # 使用正则表达式匹配找到要替换的东西,"H" 是要替换的东西, "197787aaga27387" 是要替换的字符串
    # print(ret) # 最终获得一个元祖,('HaagaH', 2) 前面是最终结果, 后面的2 是正则表达式匹配的此数.
    #-------------------------------练习------------------
    # ret = re.subn("d+","H","68768hjkh89798kjhkj80979") #使用正则表达式匹配,并且将匹配的数据用"H"替换掉,打印结果中有匹配次数.
    # print(ret)
    #-------------------------------------------------------

    #
    # ret = re.split("d+","aalex67taibai49ritian45") # 以匹配到的东西切割
    # print(ret)
    #------------------------------- 练习--------------
    # ret = re.split("d+","afafa56876hjkjh879798ghjgjhghg987987987987") #使用正则表达式做匹配,匹配成功就进行切割,输出结果是一个列表
    # print(ret)


    # 进阶方法 - 爬虫自动化开发
    # compile ***** 时间效率
    # re.findall('-0.d+|-[1-9]+(.d+)?','alex83egon20taibai40') --> python解释器能理解的代码 --> 执行代码
    # ret = re.compile('-0.d+|-[1-9]d+(.d+)?')
    # res = ret.search('alex83egon-20taibai-40')
    # print(res.group())
    # 节省时间 : 只有在多次使用某一个相同的正则表达式的时候,这个compile才会帮助我们提高程序的效率
    #-------------------------------练习----------------------------
    # ret = re.findall("d+","7987jkk8798hjghj")
    # print(ret)

    # ret = re.compile("d+") # 先运行正则表达式,并且将运行结果存储在内存中,如果遇到大量数据的时候不需要每次都执行一次正则表达式.
    # res = ret.search("7987jkk8798hjghj")
    # res1 = ret.search("79822hkjhkjhhhjgt76")
    # print(res.group())
    # print(res1.group())

    #-----------------------------------------------------------------

    # finditer ***** 空间效率
    # print(re.findall('d','sjkhkdy982ufejwsh02yu93jfpwcmc'))
    # ret = re.finditer('d','sjkhkdy982ufejwsh02yu93jfpwcmc')
    # for r in ret:
    # print(r.group())

    #----------------------练习------------------------
    # ret = re.finditer("d+","hhkjhkj879784564hjhj4565") # 在处理大量数据的时候,会将匹配的数据放到一个迭代器中,什么时候有需要从迭代器中取值就可以了
    # for r in ret:
    # print(r.group())

    #----------------------练习---------------------------------------
    # import re
    # ret=re.compile('-0.d+|-[1-9]d*(.d+)?') #先将正则表达式执行出来结果,存放在内存中,后面有需要可以直接使用,不需要再次导入编译
    # c=ret.search('-1asdada-200') # '-1asdada-200' 该字符串使用之前的正则表达式来匹配结果 (只找一个)
    # print(c.group())
    # c1=ret.findall('-1asdada-200') # 查找所有的匹配结果
    # print(c1)

    #-------------------------------------------------------------------
    import random
    # lst = [0,1,2,3,4,5,6,7,8,9]
    # ret = random.sample(lst,4)
    # print(ret)


    #------------------------------
    # print(chr(65)) #A
    # print(chr(90)) #Z
    # print(chr(97)) #a
    # print(chr(122)) #z
    # print(chr(48)) #0
    # print(chr(57)) #9

    # lst = range((chr(48),chr(57)) and (chr(65),chr(90)) and (chr(97),chr(122)))
    # print(lst)
    lst = []
    chose = []
    for i in range(48,58):
    lst.append(chr(i))
    for i in range(65,91):
    lst.append(chr(i))
    for i in range(97,123):
    lst.append(chr(i))
    for i in range(6):
    ret = random.choice(lst)
    chose.append(ret)
    print(chose)


  • 相关阅读:
    解决在SQLPLUS中无法使用方向键、退格键问题
    Oracle 11g R2手动配置EM(转)
    为什么JDK代码这样写?final ReentrantLock takeLock = this.takeLock
    使用CompletableFuture实现业务服务的异步调用实战代码
    SpringBoot项目从Git拉取代码并完成编译打包启动的sh自动脚本
    SpringBoot项目实现配置实时刷新功能
    (8)Flask微电影项目会员中心其他页面搭建
    (7)Flask微电影之会员中心页面搭建
    (6)Flask项目之会员注册页面
    (5)Flask项目会员登录页
  • 原文地址:https://www.cnblogs.com/kcwxx/p/9439823.html
Copyright © 2011-2022 走看看