关键词:
一、re模块下的常用方法
首先在使用re模块之前,需要引入re模块
import re
1.与查找相关的:
1.findall 返回列表,找到所有的匹配项
ret = re.findall("d+","asda132eqwe啊阿达456") print(ret) # [‘132‘, ‘456‘]
2.search 匹配从左到右第一个符合,返回一个变量,通过group方法取到值,没有匹配到就会返回None,使用group会报错。
ret = re.search("d+","asda132eqwe啊阿达456") print(ret.group()) #132 ret = re.search("d+","asdaeqwe啊阿达") print(ret.group()) #AttributeError: ‘NoneType‘ object has no attribute ‘group‘
3.match 相当于在search的正则表达式中加了一个“^”
2.与字符串处理相关的;
1.spilt 返回列表,按照正则规则切割,默认匹配到的内容会被切割掉。
ret = re.split("d+","asd23sadasd90dasdasd809asd89") print(ret) # [‘asd‘, ‘sadasd‘, ‘dasdasd‘, ‘asd‘, ‘‘]
2.sub、subn 替换,按照正则规则去寻找要被替换的内容,subn返回元组,第二个值是替换的次数。
ret = re.sub("d+","H","asd23asd34455asd55") print(ret) # asdHasdHasdH ret = re.subn("d+","H","asd23asd34455asd55") print(ret) # (‘asdHasdHasdH‘, 3)
3.re模块的进阶:时间空间
1.compile 编译一个正则表达式,用这个结果去search match findall finditer 能节省时间,不用每次使用的时候再去编译了。
ret = re.compile("d+") res = ret.findall("asd23asd34455asd55") print(res) res = ret.search("asd23asd34455asd55") print(res.group())
2.finditer 返回一个迭代器,所有的结果都在这个迭代器中,需要通过循环+group的形式取值 能够节省内存。
res = re.finditer("d+","asd23asd34455asd55") print(res) for i in res: print(i.group())
二、分组在re模块中的使用
s = ‘<a>wahaha</a>‘ ret = re.search("(>)(w+)(<)",s) print(ret.group()) #不加参数,默认是匹配所有结果 print(ret.group(1)) #数字参数表示的是取对应分组中的内容 print(ret.group(2)) print(ret.group(3))
ret = re.findall(">(w+)<",s) print(ret) #[‘wahaha‘] #为了findall也可以顺利取到分组中的内容,有一个特殊的语法,就是优先显示分组中的内容
ret = re.findall(‘d+(?:.d+)?‘,‘1.234*4‘) print(ret) #[‘1.234‘, ‘4‘] #如果按照优先显示,那么结果就不是想要的。所以在括号中加入"?:"就可以取消分组优先,还不会破坏原本的正则表达式。
ret = re.split(‘(d+)‘,‘alex83taibai40egon25aa‘) print(ret) #[‘alex‘, ‘83‘, ‘taibai‘, ‘40‘, ‘egon‘, ‘25‘, ‘aa‘] #用split切割后消失的部分,可以用()将正则规则括起来,这样就能得到切割掉的部分
s = ‘<a>wahaha</a>‘ ret = re.search(">(?P<com>w+)<",s) print(ret.group(1)) print(ret.group("com")) #wahaha #wahaha #可以通过在分组中加入"?P<name>",来对这个分组命名,在group给参数时可以给这个组的名字。
#使用前面的分组,要求使用这个名字的分组和前面同名分组中的内容匹配必须一致 s = ‘<a>wahaha</a>‘ ret = re.search("<(?P<tag>w+)>(w+)</(?P=tag)>",s) print(ret.group()) #<a>wahaha</a>
re模块的高级用法(代码片段)
search需求:匹配出文章阅读的次数#coding=utf-8importreret=re.search(r"d+","阅读次数为9999")ret.group()运行结果:‘9999‘findall需求:统计出python、c、c++相应文章阅读的次数#coding=utf-8importreret=re.findall(r"d+","python=9999,c=7890,c++=12345")print(ret)运... 查看详情
re模块(代码片段)
re模块使用re模块时需要先导入re模块参数:pattern:正则匹配规则string:需要进行匹配的字符串flags一、findall()的用法格式:findall(pattern,string,flags=0)findall()返回值:列表形式所有符合匹配的结果都会写入列表中返回只有一个返回... 查看详情
学习python的第二十三天(re模块)(代码片段)
6.13自我总结1.re模块1.re.findall()1.基本用法re.findall(正则匹配的格式,匹配的对象)2.正则匹配常用格式1.^只匹配开头在多行模式中匹配每一行的开头类似字符串内置方法里面的startswithimportres='''aaaa,123213123,____,杨aaaaa''... 查看详情
博客管理与文章发布系统-第三方模块及其用法part1(代码片段)
...子记录一下自己写的第一个express完整项目。所需第三方模块及其用法。一.先把所需文件和准备工作写一下写项目前的准备1.创建所需文件夹public静态资源model数据库操作route路由views模板2.初始化项目描述文件 npminit-y3.下载第三方... 查看详情
pythonre模块用法详解(代码片段)
...页HTML元素的解析操作。本节重点讲解如何使用re正则解析模块实现网页信息的提取。注意:在学习本节知识之前,您应该基本掌握了Pythonre模块的常用方法。re模块常用方法re.compile()该方法用来生成正则表达式对象,... 查看详情
python3正则匹配re.split,re.finditer及re.findall函数用法详解(代码片段)
...家参考,具体如下:re.splitre.finditerre.findall@(python3)官方re模块说明文档re.compile()函数编译正则表达式模式,返回一个对象。可以把常用的正则表达式编译成正则表达式对象,方便后续调用及提高效率。re模块最离不开的就是re.compi... 查看详情
正则模块的应用(代码片段)
---恢复内容开始---findall()用法importres="olxdboy67laonxa34nhaialex"ret=re.findall("d+",s)print(ret)#[‘67‘,‘34‘]search() 从左至右查询第一个就返回s="olxdboy67laonxa34nhaialex"ret=re.search("d+",s)print(ret)#& 查看详情
python正则模块—re(代码片段)
文章目录一、python正则模块re二、正则模块语法规则三、re模块语法3.1re.A(re.ASCII)3.2re.I(re.IGNORECASE)3.3re.L(re.LOCALE)3.4re.M(re.MULTILINE)3.5re.S(re.DOTALL 查看详情
python正则模块—re(代码片段)
文章目录一、python正则模块re二、正则模块语法规则三、re模块语法3.1re.A(re.ASCII)3.2re.I(re.IGNORECASE)3.3re.L(re.LOCALE)3.4re.M(re.MULTILINE)3.5re.S(re.DOTALL 查看详情
re模块(代码片段)
1#Author:SureFeng23‘‘‘4re模块5‘‘‘67importre8910#最常用的匹配语法(匹配的套路)11#1、re.match匹配开头,没有则匹配不成功12print(re.match("s+","asddf123fssa"))#None13print(re.match(".","asddf123fssa"))#<re.Matchobject;span=(0 查看详情
re模块(代码片段)
目录re模块可以用到的元字符:反斜杠后边跟普通字符实现特殊功能re模块的常用功能函数re模块正则表达式的大致匹配过程是:依次拿出表达式和文本中的字符比较,如果每一个字符都能匹配,则匹配成功;一旦有匹配不成功的... 查看详情
re模块(代码片段)
importre#print(re.findall(‘w‘,‘ab12+-*&_‘))[‘a‘,‘b‘,‘1‘,‘2‘,‘_‘]#w#print(re.findall(‘W‘,‘ab12+-*&_‘))[‘‘,‘\‘,‘+‘,‘-‘,‘‘,‘*‘,‘&‘]#print(re.findall(‘s‘,‘ab12 +-*&_‘))[‘‘,‘ 查看详情
re模块(代码片段)
1user_info=‘phone:18612574474qq:8068886262‘2print(re.findall(‘d*‘,user_info))3print(filter(None,re.findall(‘d*‘,user_info)))4[‘‘,‘‘,‘‘,‘‘,‘‘,‘‘,‘18612574474‘,‘‘,‘‘,‘‘,‘‘,‘8068886262‘,‘‘]5[‘186125744 查看详情
go,re模块(代码片段)
------------------------------------------------------------Golang中的正则表达式------------------------------------------------------------用法:------------------------------单一: . 匹配任意一个字符,如果设置s=true,则可以匹... 查看详情
re模块(代码片段)
1.初识re模块姓名地区身高体重电话况咏蜜北京1714813651054608王心颜上海1694613813234424马纤羽深圳1735013744234523乔亦菲广州1725215823423525罗梦竹北京1754918623423421刘诺涵北京1704818623423765岳妮妮深圳1775418835324553贺婉萱深圳1745218933434452叶梓... 查看详情
re:模块(代码片段)
模块的引用importre 注:为.py文件取名时不能与模块的名字相同re模块中的查找findall匹配所有条件相匹配,每一项都是列表中的元素importreret=re.findall(r"d+","大123家78好!")print(ret)运行结果:[‘123‘,‘78‘]search匹配从左到右的第一个... 查看详情
枚举及其高级用法(代码片段)
Enum源码:/**Copyright(c)2003,2009,Oracleand/oritsaffiliates.Allrightsreserved.*ORACLEPROPRIETARY/CONFIDENTIAL.Useissubjecttolicenseterms.*/packagejava.lang;importjava.io.Serializable;importjava.io.IOExc 查看详情
re模块(01)(代码片段)
#计算器#re模块#正则表达式——字符串匹配的#学习正则表达式#学习使用re模块来操作正则表达式whileTrue:phone_number=input(‘pleaseinputyourphonenumber:‘)iflen(phone_number)==11andphone_number.isdigit()and(phone_number.startswith(‘13‘)orphone_numb 查看详情