Python语言程序设计(工作手册式)【实训题目-含答案】实验7 正则表达式答案版.docx

上传人:lao****ou 文档编号:688160 上传时间:2024-04-08 格式:DOCX 页数:9 大小:44.26KB
下载 相关 举报
Python语言程序设计(工作手册式)【实训题目-含答案】实验7 正则表达式答案版.docx_第1页
第1页 / 共9页
Python语言程序设计(工作手册式)【实训题目-含答案】实验7 正则表达式答案版.docx_第2页
第2页 / 共9页
Python语言程序设计(工作手册式)【实训题目-含答案】实验7 正则表达式答案版.docx_第3页
第3页 / 共9页
Python语言程序设计(工作手册式)【实训题目-含答案】实验7 正则表达式答案版.docx_第4页
第4页 / 共9页
Python语言程序设计(工作手册式)【实训题目-含答案】实验7 正则表达式答案版.docx_第5页
第5页 / 共9页
亲,该文档总共9页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Python语言程序设计(工作手册式)【实训题目-含答案】实验7 正则表达式答案版.docx》由会员分享,可在线阅读,更多相关《Python语言程序设计(工作手册式)【实训题目-含答案】实验7 正则表达式答案版.docx(9页珍藏版)》请在第一文库网上搜索。

1、Python基础卖歌报告实验项目实验7正则表达式学员姓名实验日期实验7正则表达式一、实验目的1、掌握正则表达式的使用方法2、掌握常用的正则表达式处理函数二、单元练习(-)选择题1 .匹配字符串abc,需要输入的正则表达式为(B)A.a.bcB.abcC.AbcD.abc.2 .匹配以abc开头的所有字符串,需要输入的正则表达式为(C)A.abc.B.abc$C.abcD.abc*E.abc.+Eabc?G.abc.*3 .如果字符串中有*需要匹配,该输入表达式为(A)A.*B.*C.*D.(*)(-)填空题运算符描述d匹配任意数字,等价于0-9.D匹配任意非数字s匹配任意空白字符,等价于tnr

2、f.w匹配字母数字及下划线W匹配非字母数字及下划线xy?匹配。个或1个由前面的正则表达式定义的片段,非贪婪方式X1y匹配X或yX*匹配0个或多个的表达式x+匹配1个或多个的表达式abcdef匹配abc或def己知字符串:abbbc则:正则表达式ab*的结abbb果己知字符串:abbbc则:正则表达式ab*?的结果a三、课堂练习任务1:【案例1:正则表达式进行网页解析】案例背景:已知某一网站的网页部分内容如下所示,该网页内容存储到本机D:/Web.txt。要求:请解析出上述网页中所有以https开头的ur1,并输出。1245VPCIaSS=appintro-1iUe”某某网站vp6VPCIaSS

3、=s1ogan我们的部落格vp78aref=910 ahref=11 12 13 IgetUr1s.py代码如下:1importre2f=Open(TeSt.txt,T)3 web=f.read()4 1ir1s=re.finda11(https:/.web)5 f.c1ose()6 forur1inur1s:7 IPrint(Uii)案例说明:0第1行,导入re模块,re模块使Python语言拥有全部的正则表达式功能。0第2行,调用文件的OPen方法,打开Web.txt。0第3行,将web.txt中的文本内容读取出来,赋值给Web变量。0第3行,这里用了re模块,它提供Per1风格的正则表达

4、式模式。利用finda函数获取字符串Web中所有匹配的字符串。匹配格式为:https:/.*?00https:开头表示以https:/为前缀文本。0点(.)匹配任意除换行符“n”外的字符。0星号(*)表示匹配前一个字符O次或无限次。0星号(*)后跟问号(?)表示非贪婪匹配,即尽可能少的匹配,如*?重复任意次,但尽可能少重复。0三个符号组合(.*?)表示匹配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复。如:a.*?b匹配最短的,以a开始,以b结束的字符串。如果把它应用于aabab的话,它会匹配aab和ab。0因此,https:/.*?”表示以hup:开始,以双引号()结束的字符串

5、,而且要求匹配重复最少的。上例中首先匹配到htps:/WWW.websiw叩p?ChanneI=top-nav,所以不再匹配href=,https7wapp7channe1=top-navc1ass=,虽然C1aSS=后面也有双引号(),但是因为是非贪婪模式,所以选择第一次匹配成功的那个。即httpswapp7channe1=top-nav,o以上实例执行结果:hits:WWWwapp?Channe1=top-nav”任务2:【案例2:正则表达式在数据清洗中应用】已知:某网址123456789101112131415161718电影名称总场次/占比网票票房A票房B票房C票房D票房实时(不含预售

6、)预计累积险记9.16万/27.1%1166.11万120.12万660.33万50.24万30.63万2888.85万6827.81万8.61亿查6.43万/25%1271.97万0725.72万024.28万3114.63万8110.94万4.1亿moviesamp1e.htm1部分代码如下:电影名称总场次/占比网票票房vihA票房v1hB票房vihC票房vthvthD票房vth实时(不含预售)vthvihi+累Rahref=某某传奇vav1dvtd6.43万25%1271.97万O725.72万024.28万3114.63万8110.94774.1亿v1d此处省略,结构与上方vtrv1r

7、基本相同,电影数据不同以上数据仅供参考vtdmovie.py代码如下:1 importre2 importos3 importSyS4 importur11ib.request5 BOR_amount=().()6 p_path=sys.pathO#获取当前路径7 ur1=fi1e,+p-path+7moviesamp1e.htm,#得到网页所在路径8 req=ur11ib.request.Request(ur1,headers=User-Agent:MagicBrowser)9 webpage=ur11ib.request.ur1oen(req)1()strw=webpage.read().

8、decode(utf-8)11 S=StrW.find(电影名称vthxth总场次/占比)12 e=strws:.find(以上数据仅供参考)13 strw_tab1e=strws:s+e14 m=15reStr=,ahrcf=fi1m0-9+boxoffice16tit1e=.+17m=re.finda11(reStr,strw-tab1e)18ifnotm:19os._exit(0)2()fortinm:21ss=22ss=re.finda11(r(d+1.J?d*%?AxOO-xff*),t)23ifss:24BOR_amount+=f1oat(ss-3.rep1ace(万25e1se:

9、26Print(出错了!”)27Print(票房总额是:+str(BOR-amount)以上实例执行结果:票房总额是:6003.48案例说明:囱第2行,导入OS模块,os模块包含普遍的操作系统功能。本案例中第19行将待用os._exi1()会直接将python程序终止,之后的所有代码都不会继续执行。exit(O):无错误退出0第3行,导入SyS模块,os模块提供了一系列有关Python运行环境的变量和函数。本案例中第6行调用sys.athO,获取当前movie.py所在目录。0第4行,导入UrHib.reques1模块,为后续获取页面做准备。ur11ib.request模块提供了最基本的构造H

10、TTP请求的方法,利用它可以模拟浏览器的一个请求发起过程。第7行,ur1=fi1e:+p_path+7moviesamp1e.htm得到网页所在完整路径。囱第8行,使用request()来包装请求,再通过ur1open()获取页面。req=ur11ib.request.Request(ur1,headers=User-Agent:MagicBrowser)ur11ib.request.Request的基本语法如下:ur11ib.request.Request(ur1,Jata=None,headers=,method=None)其中,headers(头部信息)可以携带如下信息:浏览器名和版本号、操作系统名和版本号、默认语言等等。UserAgent存放于Headers中,服务器就是通过查看Headers中的UserAgent来判断是谁在访问。有些网站不喜欢被爬虫程序访问,所以会检测连接对象,如果发现是爬虫程序,它就不会让你继续访问,所以程序需要隐藏自己的爬虫程序的身份。此时,我们可以通过设置USerAgent(用户代理)的来达到隐藏身份的目的。第9行,webpage=ur

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 工作总结

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服