python re模块

常用模块findall(增则表达式,待匹配的字符串)    功能: 取所有    返回值:  列表,所有匹配到的字符串都会放到列表中findall和分组的关系
ret = re.findall(‘\d(\d)‘,‘al,b22,c345‘)
print(ret)   # \d\d  首先是两位数字,-- [22,34] -->   (\d) 优先显示后面的数字 [2,4]

ret1 = re.findall(‘\d(?:\d)‘,‘al,b22,c345‘)
print(ret1)       ## (?:)  取消优先显示      [22,34]
search()    功能:  只取一个    返回值: re自定义类型   re.group() search和分组的关系  
#search和分组的关系
ret = re.search(‘\d(\d)‘,‘a1,b28,c33‘)
print(ret.group())          # [22]
print(ret.group(1))         # [1]
match()     匹配用户输入的内容时一般都是用match    功能: 从头开始匹配,如果开始部分匹配到了就是匹配成功,如果匹配到了就是匹配成功。split()    根据正则做切割
s = ‘liu123xingchen456chen789‘
ret = re.split(r‘\d+‘,s)
print(ret)

 sub()        替换方法 (根据正则表达式,要替换的内容,字符串,替换的次数)

ret = re.sub(r‘\d+‘,‘H‘,‘liu123xing456chen789‘,1)
print(ret)

compile()  预先编译功能,预先来编译一下我们写好的正则

rule = re.compile(r‘\d+‘)
ret = rule.findall(‘lxc123xing456chen789‘)
print(ret)

ret1 = rule.findall(r‘手机号码110110110110\n身份证号码\t110110110110110110‘)
print(ret1)

finditer()  返回一个迭代器,循环取出来的是re的自定义类型,通过group() 取值,能节省内存空间

ret2 = re.findall(‘\d+‘,‘156314132165463511646431654651646‘)
print(ret2)
ret3 = re.finditer(‘\d+‘,‘156314132165463511646431654651646‘)
for i in ret3:
    print(i.group())
匹配字符组    匹配所有数字:        [0-9]    匹配所有小写字母:     [a-z]    匹配所有大写字母:     [A_Z]    匹配所有字母和数字:    [0-9a-zA-Z]匹配元字符\d             匹配所以数字  == [0-9]\w             [0-9a-zA-Z_]\s \t \n       \s 空白符== \t \n \r 空格\D             匹配所有非数字\W             所有非数字字母下划线\S             匹配所有非空白符.              匹配所有除了换行符号的字符^ $            匹配一个字符串的开始/匹配一个字符串的结束|              或()     分组    用来规范符号的作用域[][^a]           除了a的所有#量词#{n}         表示匹配n次#{n,}       表示匹配至少n次#{n,m}       表示匹配n-m次#?           表示0或1次#+           1-无穷大#*           0-无穷大#量词后面的?表示惰性匹配,会在符合条件的基础上尽量少匹配

相关推荐