版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、步骤四正则表达式与项目实战步骤介绍正则表达式入门及应用正则的进阶案例综合项目实战章节概要正则表达式基础 使用正则表达式re模块 findall()的使用search()的使用 group()与groups()的使用split()正则替换 实战:正则匹配图片地址使用场景垃圾邮件拦截,邮件分类等Web开发验证手机号、邮箱等爬虫开发正则匹配内容使用正则表达式进行字符串替换实战效果展示什么是正则表达式正则表达式(简称为 regex)是一些由字符和特殊符号组成的字符串能按照某种模式匹配一列有似特的字串例如:表示2个小写英文母正则表达式中的符号符号描 述示例literal匹配文本字符串的字面值 liter
2、alfoore1|re2匹配正则表达式 re1 或者 re2foo|bar.匹配任何字符(除了n 之外)b.b匹配字符串起始部分Dear$匹配字符串终止部分/bin/*sh$*匹配 0 次或者多次前面出现的正则表达式A-Za-z0-9*+匹配 1 次或者多次前面出现的正则表达式a-z+.?匹配 0 次或者 1 次前面出现的正则表达式goo?N匹配 N 次前面出现的正则表达式0-93M,N匹配 MN 次前面出现的正则表达式0-95,9匹配来自字符集的任意单一字符aeiou.x-y.匹配 xy 范围中的任意单一字符0-9, A-Za-z不匹配此字符集中出现任何个字,包某一围的字符(如果在此字符集出
3、现)aeiou, A-Za- z0-9(*|+|?|)?用于匹配上面频繁出现/重复出现符号的非贪婪版本(*、+、 ?、 ).*?a-z()匹配封闭的正则表达式,然后另存为子组(0-93)?,f(oo|u)bar正则表达式中的特殊字符特殊字符描 述示例d匹配任何十进制数字,与0-9一致(D 与d 相反,不匹配任何非数值型的数字)datad+.txtw匹配任何字母数字字符,与A-Za-z0-9_相同(W 与之相反)A-Za-z_w+s匹配任何空格字符,与ntrvf相同(S 与之相反)ofstheb匹配任何单词边界(B 与之相反)bThebN匹配已保存的子组 N(参见上面的()price: 16c逐
4、字匹配任何特殊字符 c(即,仅按照字面意义匹配,不匹配特殊含义)., , *A(Z)匹配字符串的起始(结束)(另见上面介绍的和$)ADear正则表达式中的扩展表示法扩展表示法描 述示例(?iLmsux)在正则表达式中嵌入一个或者多个特殊“标记” 参数(或者通过函数/方法)(?x),(? im)(?:)表示一个匹配不用保存的分组(?:w+.)*(?P)像一个仅由 name 标识而不是数字 ID 标识的正则分组匹配(?P)(?P=name)在同一字符串中匹配由(?Pname)分组的之前文本(?P=data)(?#)表示注释,所有内容都被忽略(?#ment)(?=)匹配条是如出现在后的,而不用输符串
5、;称作正向前视断言(?=.)(?!)匹配条件是如果不出在之的位,而使用入字符串;称作负向前视断言(?!.net)(?=)匹配条件是如果出现在之前的位置,而不使用输入字符串;称作正向后视断言(?=800-)(?!)匹配条件是如果不出在之的位,而使用入字符串;称作负向后视断言(? abc多个匹配模式: 例如:abc | 12c= abc, 12c匹配任意字符(.),除n之外 :例如:.= abc, 12c使用正则表达式*匹配0次或者多次 +匹配一次或者多次例如:a*bc aabcd =aabc cbc =bc例如:a+bc aabcd =aabc cbc=使用正则表达式?匹配0次或者1次 N匹配指
6、定的N次例如:a?bc aabcd =abc cbc =bc例如:a3 aaaabc = aaa使用正则表达式M,N匹配M-N次,最大化优先例如:a2,5aabcd = aacaaaacd = aaaa caaaaaaaaacd=aaaaa匹配同类型d匹配数字 w匹配数字和字母例如:dc123d= 1s匹配任何空格字符例如:as2accccaaccc= aa例如:w3he666= he6边界匹配用匹配以*开头 用$匹配以*结尾例如:he.hello world= hel shello world=例如:.ld$hello world= rldhello world! =思考.匹配任意字符,那如
7、何匹配 . ?还有诸如$呢?匹配特殊字符需要用“”进行转义例如.imooc.= .例如:http:/w+sss HYPERLINK / http:/.baidu.=http:/指定匹配选项使用指定要匹配的集合例如:abc2cba666 = cb xba666 = ba xbb666 = bb例如:a-zA-Z2指定匹配选项使用指定不要匹配的内容例如:abc2正则表达式分组重复一个字符串时使用()进行分组,使用(?w+)指定组名从左向右,以分组的左号为志,一个现的组的组号为1,第二个为2,此类推正则表达式分组表达式(A)(B(C)分组情况解析0(A)(B(C)1(A)2(B(C)3(C)正则表达
8、式分组使用()对匹配的内容分组例如:(d1,3.)3d1,34使用1、2反向引用例如:He (l.e)s her 1r.He loves her lover. He likes her liker.贪婪模式vs非贪婪模式贪婪匹配在整个表达式匹配成功的前提下,尽可能多的匹配非贪婪匹配在整个表达式匹配成功的前提下,以最少的匹配字符默认是贪婪模式表达式 ab.+c贪婪模式举例测试数据:abacaxcd匹配结果:abacaxc非贪婪模式只需在匹配pattern中加上?表达式ab.*?c测试数据:abacaxcd匹配结果:abac正则表达式练习身份证号码匹配正则表达式编写电子邮箱正则表达式编写手机号码正
9、则表达式编写第1课 正则表达式入门及应用课程总结什么是正则表达式正则表达式匹配选项正则表达式分组匹配同类型及边界匹配 贪婪模式VS非贪婪模式正则表达式分析练习什么是正则表达式正则表达式(简称为 regex)是一些由字符和特殊符号组成的字符串能按照某种模式匹配一列有似特的字串例如:表示2个小写英文母使用正则表达式简单匹配:例如:abc= abc多个匹配模式: 例如:abc| 12c= abc,12c匹配任意字符(.),除n之外 :例如:.= abc,12c使用正则表达式*匹配0次或者多次 +匹配一次或者多次例如:a*bc aabcd =aabc cbc =bc例如:a+bc aabcd =aab
10、c cbc=使用正则表达式?匹配0次或者1次 N匹配指定的N次例如:a?bc aabcd =abc cbc =bc例如:a3 aaaabc = aaa使用正则表达式M,N匹配M-N次,最大化优先例如:a2,5aabcd = aacaaaacd = aaaa caaaaaaaaacd=aaaaa匹配同类型d匹配数字 w匹配数字和字母例如:dc123d= 1s匹配任何空格字符例如:as2accccaaccc= aa例如:w3he666= he6边界匹配用匹配以*开头 用$匹配以*结尾例如:he.hello world= hel shello world=例如:.ld$hello world= rl
11、dhello world! =匹配特殊字符需要用“”进行转义例如.imooc.= .例如:http:/w+sss HYPERLINK / http:/.baidu.=http:/指定匹配选项使用指定要匹配的集合例如:abc2cba666 = cb xba666 = ba xbb666 = bb例如:a-zA-Z2指定匹配选项使用指定不要匹配的内容例如:abc2正则表达式分组重复一个字符串时使用()进行分组,使用(?w+)指定组名从左向右,以分组的左号为志,一个现的组的组号为1,第二个为2,此类推正则表达式分组表达式(A)(B(C)分组情况解析0(A)(B(C)1(A)2(B(C)3(C)正则表
12、达式分组使用()对匹配的内容分组例如:(d1,3.)3d1,34使用1、2反向引用例如:He (l.e)s her 1r.He loves her lover. He likes her liker.贪婪模式vs非贪婪模式贪婪匹配在整个表达式匹配成功的前提下,尽可能多的匹配非贪婪匹配在整个表达式匹配成功的前提下,以最少的匹配字符默认是贪婪模式非贪婪模式只需在匹配pattern中加上?表达式ab.*?c测试数据:abacaxcd匹配结果:abac正则表达式练习身份证号码匹配正则表达式编写电子邮箱正则表达式编写手机号码正则表达式编写重点知识理解什么是正则表达式以及它的用途正则表达式的基本语法正则表
13、达式的编写和验证正则表达式的分组及反向引用难点知识正则表达式的贪婪与非贪婪模式正则表达式的分析方法第2课 正则的进阶课程概要re模块 findall()的使用search()的使用 group()与groups()的使用split()正则分割 Sub()正则替换课程目标掌握pile()和match()函数的使用掌握findall()和search()函数的使用理解math()和search()的区别掌握group()、groups()、groupdict()的基本使用掌握split()、sub()的基本使用教学思路先理论后代码实战跟着来re模块属性描述re.I、 re.IGNORECASE不区
14、分大小写的匹配re.L、 re.LOCALE根据所使用的本地语言环境通过w、 W、 b、 B、s、 S 实现匹配re.M、 re.MULTILINE和$分别匹配目标字符串中行的起始和结尾,而不是严格匹配整个字符串本身的起始和结尾re.S、 rer.DOTALL“.”(点号)通常匹配除了n(换行符)之外的所有单个字符;该标记表示“.”(点号)能够匹配全部字符re.X、 re.VERBOSE通过反斜线转义, 否则所有空格加上#(以及在该行中所有后续文字)都被忽略,除非在一个字符类中或者允许注释并且提高可读性re模块-pilepile(pattern, flags =0)使用任何可选的标记来编译正则
15、表达式的模式,然后返回一个正则表达式对象推荐编译,但它不是必须的re模块-matchmatch(pattern, string,flags=0)尝试使用带有可选的标记的正则表达式的模式来匹配字符串。如果匹配成功,就返回匹配对象; 如果失败,就返回 Nonefindall()的使用findall(pattern, string , flags)查找字符串中所有(非复)现的则表式模,并回一个匹配列表search()的使用search(pattern, string,flags=0)使用可选标记搜索字符串中第一次出现的正则表达式模式。如果匹配成功,则返回匹配对象; 如果失败,则返回 Nonegroup()与groups()的使用group(num)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农业农村工作知识试题
- 26年VEGFR表达检测用药适配要点
- 26年膀胱癌精准医疗质控要点梳理
- 2026 减脂期杏课件
- 骨科患者的预防压疮护理
- 高级月嫂服务标准与提升
- 膀胱癌疼痛管理护理策略
- 2026 塑型维持期腐竹课件
- 饮食与护理:特殊疾病的饮食调理
- 胸外科患者术后疼痛管理新进展
- 雨课堂学堂在线学堂云《金融法:金融科技与人工智能法(复旦)》单元测试考核答案
- 盆腔炎性疾病诊疗规范
- 2026年考研政治真题及答案解析(完整版)
- 轨道交通系统运营与维护手册(标准版)
- 小学科学新教科版二年级下册2.5.设计钓鱼玩具 练习题(附参考答案和解析)2026春
- 2025年中国铁路武汉局集团有限公司招聘高校毕业生1291人(二)笔试参考题库附带答案详解
- 2026年设备安装质量员考试题库(附答案)
- 2026中国旅游集团总部及所属企业岗位招聘9人参考题库附答案
- 2026年美的数字化转型岗-AI-面试专项训练题含答案
- 幼儿园公众号培训课件
- 油田钻井监督岗位培训考试题全集
评论
0/150
提交评论