05_3正则表达式ppt课件.pptx

上传人:春哥&#****71; 文档编号:15236822 上传时间:2022-05-11 格式:PPTX 页数:21 大小:2.14MB
返回 下载 相关 举报
05_3正则表达式ppt课件.pptx_第1页
第1页 / 共21页
05_3正则表达式ppt课件.pptx_第2页
第2页 / 共21页
点击查看更多>>
资源描述

《05_3正则表达式ppt课件.pptx》由会员分享,可在线阅读,更多相关《05_3正则表达式ppt课件.pptx(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、在此输入您的封面副标题05_3正则表达式正则表达式杭州师范大学杭州师范大学 虞歌虞歌 第第2页页Python程序设计基础程序设计基础字符串、列表和元组字符串、列表和元组杭州师范大学杭州师范大学 虞歌虞歌 第第3页页Python程序设计基础程序设计基础字符串、列表和元组字符串、列表和元组正则表达式正则表达式(regular expression)是一个用于匹配字符串的模板)是一个用于匹配字符串的模板。任何任何字符串都可以视为正则表达式,例如字符串都可以视为正则表达式,例如,字符串,字符串“Python”就是一个正则就是一个正则表达式,但它只能匹配字符串表达式,但它只能匹配字符串“Python”,

2、不能匹配其他字符串,不能匹配其他字符串。通常正则表达式能够匹配一批字符串通常正则表达式能够匹配一批字符串。正则表达式由普通字符和特殊字符构成。正则表达式由普通字符和特殊字符构成。杭州师范大学杭州师范大学 虞歌虞歌 第第4页页Python程序设计基础程序设计基础字符串、列表和元组字符串、列表和元组下表中的特殊字符下表中的特殊字符被称为元字符。被称为元字符。 杭州师范大学杭州师范大学 虞歌虞歌 第第5页页Python程序设计基础程序设计基础字符串、列表和元组字符串、列表和元组字符字符类类中的字符可以逐个列出,也可以给出范围。连字符中的字符可以逐个列出,也可以给出范围。连字符-若出现在字符中若出现在

3、字符中间,表示字符范围。特殊字符间,表示字符范围。特殊字符若出现在开头,表示取反。若出现在开头,表示取反。 -abc# 匹配匹配-、a、b、c中的任何一个字符中的任何一个字符a-c# 匹配匹配a、b、c中的任何一个字符中的任何一个字符abc# 匹配除了匹配除了a、b、c外的任何一个字符外的任何一个字符abc# 匹配匹配a、b、c中的任何一个字符中的任何一个字符0-9# 匹配匹配09的任何一个数字字符的任何一个数字字符0-9# 匹配任何一个非数字字符匹配任何一个非数字字符a-zA-Z# 匹配匹配az或或AZ的任何一个字符的任何一个字符a-zA-Z# 匹配除了匹配除了az或或AZ外的任何一个字符外

4、的任何一个字符杭州师范大学杭州师范大学 虞歌虞歌 第第6页页Python程序设计基础程序设计基础字符串、列表和元组字符串、列表和元组分组分组()中的正则表达式作为一个整体,可以后跟数量词。分组中的中的正则表达式作为一个整体,可以后跟数量词。分组中的|仅在该组中仅在该组中有效。有效。(ab|cd)# 匹配匹配ab或或cd(ab)3# 匹配匹配ababab注意:注意:ab3则匹配则匹配abbb。杭州师范大学杭州师范大学 虞歌虞歌 第第7页页Python程序设计基础程序设计基础字符串、列表和元组字符串、列表和元组下表是正则表达式提供的若下表是正则表达式提供的若干预定义字符类。干预定义字符类。杭州师范

5、大学杭州师范大学 虞歌虞歌 第第8页页Python程序设计基础程序设计基础字符串、列表和元组字符串、列表和元组在在Python中,中,表示转义字符的表示转义字符的前缀。在前缀。在正则表达式中,一些特殊字符也以正则表达式中,一些特殊字符也以作为作为前缀前缀。匹配。匹配一个数字的一个数字的d,在,在Python中应表示中应表示为为“d”。也可以使用。也可以使用Python的原的原生生字符串字符串rd。rbthe# 匹配匹配任何以任何以the开头的开头的字符串字符串rerb# 匹配匹配“never”中的中的“er”,不能,不能匹配匹配“verb”中的中的“er”,只关心单词后边的,只关心单词后边的字

6、符字符rerB# 匹配匹配“verb”中的中的“er”,不能,不能匹配匹配“never”中的中的“er”,只关心单词中间的,只关心单词中间的字符字符ra-zA-Z_w$*# Python标识符标识符rd*02468# 偶数偶数杭州师范大学杭州师范大学 虞歌虞歌 第第9页页Python程序设计基础程序设计基础字符串、列表和元组字符串、列表和元组下表是正则表达式提供的若干下表是正则表达式提供的若干特殊分组。特殊分组。rb(?Pw+)bs+(?P=my_group1)b,(w+)的编号为的编号为1、别名为、别名为my_group1,后面的,后面的(?P=my_group1)引用前面的引用前面的(w+

7、)。rb(w+)bs+1b,(w+)的编号为的编号为1,后面的,后面的1引用前面的引用前面的(w+)。杭州师范大学杭州师范大学 虞歌虞歌 第第10页页Python程序设计基础程序设计基础字符串、列表和元组字符串、列表和元组正则表达式中反正则表达式中反斜杠斜杠的的作用。作用。反斜反斜杠杠后边后边跟特殊字符去除特殊功能,即特殊字符转义成普通字符;跟特殊字符去除特殊功能,即特殊字符转义成普通字符;反斜反斜杠杠后边后边跟普通字符实现特殊功能,即预定义字符类;跟普通字符实现特殊功能,即预定义字符类;引用分组编号对应的分组引用分组编号对应的分组。Python默认使用贪婪模式,即总是尝试匹配尽可能多的字符默

8、认使用贪婪模式,即总是尝试匹配尽可能多的字符。而懒惰。而懒惰模式则相模式则相反,总是尝试匹配尽可能少的字符反,总是尝试匹配尽可能少的字符。对于对于“abbbc”,正则表达式,正则表达式ab*贪婪匹配将找到贪婪匹配将找到“abbb”;正则表达式;正则表达式ab*?懒惰匹懒惰匹配将找到配将找到“a”。注意,加个注意,加个?就可以让就可以让ab*采用懒惰匹配。采用懒惰匹配。杭州师范大学杭州师范大学 虞歌虞歌 第第11页页Python程序设计基础程序设计基础字符串、列表和元组字符串、列表和元组Python通过通过re模块提供了对正则表达式的支持。模块提供了对正则表达式的支持。要要使用使用re模块处理正

9、则表达式,必须先导入模块处理正则表达式,必须先导入re模块:模块:import re。re模块首先编译正则表达式,如果正则表达式本身不合法,会报错;然后用编译后模块首先编译正则表达式,如果正则表达式本身不合法,会报错;然后用编译后的正则表达式的正则表达式去匹配字符串。去匹配字符串。假设假设pattern是正则表达式;是正则表达式;string是要匹配的字符串;是要匹配的字符串;flags是匹配模式。是匹配模式。re.match(pattern, string, flags=0),如果,如果在字符串在字符串起始位置起始位置匹配成功就返回匹配成功就返回匹配对匹配对象象,否则返回,否则返回None。

10、杭州师范大学杭州师范大学 虞歌虞歌 第第12页页Python程序设计基础程序设计基础字符串、列表和元组字符串、列表和元组re.search(pattern, string, flags=0),如果,如果在字符串在字符串任何位置任何位置匹配成功就返回匹配成功就返回匹配对匹配对象象,否则返回,否则返回None。如果字符串中存在多个匹配子串,只返回首次匹配的。如果字符串中存在多个匹配子串,只返回首次匹配的。re.fullmatch(pattern, string, flags=0),如果整个字符串匹配成功就返回,如果整个字符串匹配成功就返回匹配对象匹配对象,否则返回否则返回None。杭州师范大学杭州

11、师范大学 虞歌虞歌 第第13页页Python程序设计基础程序设计基础字符串、列表和元组字符串、列表和元组re.findall(pattern, string, flags=0),返回字符串中所有相匹配的不重叠子串,返回,返回字符串中所有相匹配的不重叠子串,返回形式为字符串列表;若没有匹配的,返回空列表形式为字符串列表;若没有匹配的,返回空列表。re.finditer(pattern, string, flags=0),返回字符串中所有相匹配的不重叠子串,返回,返回字符串中所有相匹配的不重叠子串,返回形式为迭代器形式为迭代器。杭州师范大学杭州师范大学 虞歌虞歌 第第14页页Python程序设计基

12、础程序设计基础字符串、列表和元组字符串、列表和元组flags匹配模式如下:匹配模式如下:re.A或或re.ASCII:预定义字符类:预定义字符类w、W、b、B、d、D、s和和S仅匹配仅匹配ASCII字字符;注意:在符;注意:在Python 3中,默认情况是匹配中,默认情况是匹配Unicode字符。字符。re.I或或re.IGNORECASE:忽略大:忽略大小写。小写。re.L或或re.LOCALE:预定义字符类:预定义字符类w、W、b、B和忽略大小写匹配依赖于当前和忽略大小写匹配依赖于当前的语言的语言环境。环境。re.M或或re.MULTILINE:元字符:元字符和和$可以匹配每一行的开头和可

13、以匹配每一行的开头和末尾。末尾。re.S或或re.DOTALL:元字符:元字符.匹配任何匹配任何字符。字符。re.X或或re.VERBOSE:正则表达式可以是多行,忽略空白字符,并可以加入注释:正则表达式可以是多行,忽略空白字符,并可以加入注释多个多个flags匹配模式可以通过匹配模式可以通过|连接起来。连接起来。杭州师范大学杭州师范大学 虞歌虞歌 第第15页页Python程序设计基础程序设计基础字符串、列表和元组字符串、列表和元组使用使用匹配对象包含的方法,可以对匹配结果进行处理。匹配对象包含的方法,可以对匹配结果进行处理。group(group1, .),返回匹配的一个或多个子串。,返回匹

14、配的一个或多个子串。group1可以使用编号也可以使可以使用编号也可以使用别名;编号用别名;编号0代表整个匹配的子串;代表整个匹配的子串;group()等价于等价于group(0);指定多个参数时将;指定多个参数时将返回一个包含匹配子串的元组返回一个包含匹配子串的元组。杭州师范大学杭州师范大学 虞歌虞歌 第第16页页Python程序设计基础程序设计基础字符串、列表和元组字符串、列表和元组groups(default=None),返回,返回一个包含所有匹配子串的元组。一个包含所有匹配子串的元组。杭州师范大学杭州师范大学 虞歌虞歌 第第17页页Python程序设计基础程序设计基础字符串、列表和元组

15、字符串、列表和元组groupdict(default=None),返回一个包含所有匹配命名子串的字典。命名子串的名,返回一个包含所有匹配命名子串的字典。命名子串的名称作为字典的键称作为字典的键。start(group),返回,返回匹配子串在字符串中的开始位置匹配子串在字符串中的开始位置(子(子串第一个字符的位置)。串第一个字符的位置)。end(group),返回,返回匹配子串在字符串中的结束位置匹配子串在字符串中的结束位置(子(子串最后一个字符的下一个串最后一个字符的下一个位置)。位置)。杭州师范大学杭州师范大学 虞歌虞歌 第第18页页Python程序设计基础程序设计基础字符串、列表和元组字符

16、串、列表和元组span(group),返回,返回一个包含匹配子串位置范围的元组。一个包含匹配子串位置范围的元组。re.split(pattern, string, maxsplit=0, flags=0),将,将字符串分割成匹配的子串,返回形字符串分割成匹配的子串,返回形式为字符串列表。式为字符串列表。maxsplit用于指定最大分割次数,不指定将全部分割用于指定最大分割次数,不指定将全部分割。杭州师范大学杭州师范大学 虞歌虞歌 第第19页页Python程序设计基础程序设计基础字符串、列表和元组字符串、列表和元组输入输入一个以一个以.结尾的简单英文句子,单词之间用空格或逗号分隔。输出该句子结尾

17、的简单英文句子,单词之间用空格或逗号分隔。输出该句子中最长的单词。如果多于一个,则输出第一个中最长的单词。如果多于一个,则输出第一个。split方法通过正则表达式将输入的英文句子分解成单词存放在字符串列方法通过正则表达式将输入的英文句子分解成单词存放在字符串列表中表中。杭州师范大学杭州师范大学 虞歌虞歌 第第20页页Python程序设计基础程序设计基础字符串、列表和元组字符串、列表和元组如果如果一个正则表达式要多次重复使用,为了提高效率,可以预编译该正则表达一个正则表达式要多次重复使用,为了提高效率,可以预编译该正则表达式,后面重复使用时就不需要再编译该正则表达式,直接匹配。式,后面重复使用时

18、就不需要再编译该正则表达式,直接匹配。pile(pattern, flags=0),将正则表达式编译为,将正则表达式编译为正则表达式正则表达式对象对象。正则表达式对象的正则表达式对象的match、search、fullmatch、findall、finditer和和split方法与方法与re模块中的对应函数基本一致模块中的对应函数基本一致。可以使用正则表达式可以使用正则表达式对象的对象的match、search等方法匹配字符串。等方法匹配字符串。杭州师范大学杭州师范大学 虞歌虞歌 第第21页页Python程序设计基础程序设计基础字符串、列表和元组字符串、列表和元组假设假设regex是正则表达式

19、对象;是正则表达式对象;pos和和endpos是搜索范围是搜索范围,pos默认为默认为0,endpos默认为字符串最后一个字符的下一个默认为字符串最后一个字符的下一个位置,从位置,从pos搜索到搜索到endpos 1。regex.match(string, pos, endpos)regex.search(string, pos, endpos)regex.fullmatch(string, pos, endpos)regex.findall(string, pos, endpos)regex.finditer(string, pos, endpos)regex.split(string, maxsplit=0)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁