正则表达式

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)


posted @ 2018-08-07 22:08  Anna_kc  阅读(182)  评论(0编辑  收藏  举报