码迷,mamicode.com
首页 > 编程语言 > 详细

python re模块

时间:2020-02-17 14:14:25      阅读:68      评论:0      收藏:0      [点我收藏+]

标签:lxc   内容   pil   自定义   表达式   print   spl   int   表达   

常用模块
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-无穷大

#量词后面的?表示惰性匹配,会在符合条件的基础上尽量少匹配

python re模块

标签:lxc   内容   pil   自定义   表达式   print   spl   int   表达   

原文地址:https://www.cnblogs.com/lxc123/p/12321327.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!