Python语言字符串与正则表达式课件.pptx

上传人(卖家):晟晟文业 文档编号:4767038 上传时间:2023-01-08 格式:PPTX 页数:51 大小:1.11MB
下载 相关 举报
Python语言字符串与正则表达式课件.pptx_第1页
第1页 / 共51页
Python语言字符串与正则表达式课件.pptx_第2页
第2页 / 共51页
Python语言字符串与正则表达式课件.pptx_第3页
第3页 / 共51页
Python语言字符串与正则表达式课件.pptx_第4页
第4页 / 共51页
Python语言字符串与正则表达式课件.pptx_第5页
第5页 / 共51页
点击查看更多>>
资源描述

1、 大数据应用人才培养系列教材第五章 字符串与正则表达式 5.1 字符串基础5.2 字符串方法5.3 正则表达式习题5.4 实验5.5 小结字符串常用的表示方式1、字符串中的字符可以是ASCII字符也可以是其他各种符号。2、它常用英文状态下的单引号()、双引号(”)或者三单引号()、三双引号(”)进行表示。5.1 字符串基础 第五章 字符串与正则表达式转义字符字符串中还有一种特殊的字符叫做转义字符,转义字符通常用于不能够直接输入的各种特殊字符。Python常用转义字符如表5.1所示:5.1 字符串基础 第五章 字符串与正则表达式转义字符说明反斜线单引号双引号a响铃符b退格符f换页符n换行符r回车

2、符t水平制表符v垂直制表符0Null,空字符串000以八进制表示的ASCII码对应符xhh以十六进制表示的ASCII码对应符表5.1用的转义字符字符串的基础操作包括。求字符串的长度、字符串的连接、字符串的遍历、字符串的包含判断、字符串的索引和切片等。第五章 字符串与正则表达式1、求字符串的长度字符串的长度是指字符数组的长度,又可以理解为字符串中的字符个数(空格也算字符),可以用len()函数查看字符串的长度。如:sample_str1=Jack loves Python print(len(sample_str1)#查看字符串长度运行结果如下:175.1 字符串基础2、字符串的连接 第五章 字

3、符串与正则表达式字符串的连接是指将多个字符串连接在一起组成一个新的字符串。例如:sample_str2=Jack,is,a,Python,fan#字符串用逗号隔开,组成元组 print(sample_str2:,sample_str2,type(sample_str2)运行结果如下:sample_str2:(Jack,is,a,Python,fan)当字符串之间没有任何连接符时,这些字符串会直接连接在一起,组成新的字符串。sample_str3=JackisaPythonfan#字符串间无连接符,默认合并 print(sample_str3:,sample_str3)运行结果如下:sample

4、_str3:JackisaPythonfan5.1 字符串基础 第五章 字符串与正则表达式字符串之间用+号连接时,也会出现同样的效果,这些字符串将连接在一起,组成一个新的字符串。sample_str4=Jack+is+a+Python+fan#字符串+连接,默认合并 print(sample_str4:,sample_str4)运行结果如下:sample_str4:JackisaPythonfan 用字符串与正整数进行乘法运算时,相当于创建对应次数的字符串,最后组成一个新的字符串。sample_str5=Jack*3#重复创建相应的字符串 print(sample_str5:,sample_s

5、tr5)运行结果如下:sample_str5:JackJackJack注意:字符串直接以空格隔开的时候,该字符串会组成元组类型。5.1 字符串基础3、字符串的遍历 第五章 字符串与正则表达式通常使用for循环对字符串进行遍历。例如:sample_str6=Python#遍历字符串 for a in sample_str6:print(a)运行结果如下:Python其中变量a,每次循环按顺序代指字符串里面的一个字符。5.1 字符串基础4、字符串的包含判断 第五章 字符串与正则表达式字符串是字符的有序集合,因此用in操作来判断指定的字符是否存在包含关系。如:sample_str7=Python p

6、rint(a in sample_str7)#字符串中不存在包含关系 print(Py in sample_str7)#字符串中存在包含关系运行结果如下:FalseTrue5.1 字符串基础5、索引和切片 第五章 字符串与正则表达式字符串是一个有序集合,因此可以通过偏移量实现索引和切片的操作。在字符串中字符从左到右的字符索引依次为0,1,2,3,。,len()-1,字符从右到左的索引依次为-1,-2,-3,。,-len()。索引其实简单来说是指字符串的排列顺序,可以通过索引来查找该顺序上的字符。例如:sample_str8=Python print(sample_str80)#字符串对应的第一

7、个字符 print(sample_str81)#字符串对应的第二个字符 print(sample_str8-1)#字符串对应的最后一个字符 print(sample_str8-2)#字符串对应的倒数第二个字符运行结果如下:Pyno5.1 字符串基础 第五章 字符串与正则表达式注意:虽然索引可以获得该顺序上的字符,但是不能够通过该索引去修改对应的字符。例如:sample_str80=b#修改字符串的第一个字符Traceback(most recent call last):#系统正常报错 File,line 9,in sample_str80=bTypeError:str object does

8、 not support item assignment切片,也叫分片,和元组与列表相似,是指从某一个索引范围中获取连续的多个字符(又称为子字符)。常用格式如下:stringnamestart:end这里的stringname是指被切片的字符串,start和end分别指开始和结束时字符的索引,其中切片的最后一个字符的索引是end-1,这里有一个诀窍叫:包左不包右。例如:sample_str9=abcdefghijkl print(sample_str90:4)#获取索引为0-4之间的字符串,从索引0开始到3为止,不包括索引为4的字符运行结果如下:abcd5.1 字符串基础 第五章 字符串与正则

9、表达式若不指定起始切片的索引位置,默认是从0开始;若不指定结束切片的顺序,默认是字符串的长度-1。例如:sample_str10=abcdefg print(起始不指定,sample_str10:3)#获取索引为0-3之间的字符串,不包括3 print(结束不指定,sample_str103:)#从索引3到最后一个字符,不包括len运行结果如下:起始不指定 abc结束不指定 defg默认切片的字符串是连续的,但是也可以通过指定步进数(step)来跳过中间的字符,其中默认的step是1。例如指定步进数为2:sample_str11=012345678 print(跳2个字符,sample_str

10、111:7:2)#索引17,每2个字符截取运行结果如下:跳2个字符 1355.1 字符串基础字符串格式化方法 第五章 字符串与正则表达式想要进行字符串格式化可以使用format()方法。例如:print(My name is 0,and I am 1.format(Jack,9)#函数格式化运行结果如下:My name is Jack,and I am 95.1 字符串基础字符串常见的格式化符号如表5.2 第五章 字符串与正则表达式格式控制符说明%s字符串(采用str()的显示)或其他任何对象%r与%s相似(采用repr()的显示)%c单个字符%b参数转换成二进制整数%d参数转换成十进制整数%

11、i参数转换成十进制整数%o参数转换成八进制整数%u参数转换成十进制整数%x参数转换成十六进制整数,字母小写%X参数转换成十六进制整数,字母大写%eE按科学计数法格式转换成浮点数%fF按定点小数格式转换成浮点数%gG按定点小数格式转换成浮点数,与%fF不同表5.2 Python格式控制符号5.1 字符串基础字符串的格式化通常有两种方式,除了之前提到的用函数的形式进行格式化以外,还可以用字符串格式化表达式来进行格式,常用%进行表示,其中%前面是需要格式化的字符串,而%后面就是需要填充的实际参数,这个实际参数其本质就是元组。%也可以理解为占位符。例如:第五章 字符串与正则表达式 print(My n

12、ame is%s,and I am%d%(Jack,9)#表达式格式化运行结果如下:My name is Jack,and I am 9注意:如果想要将后面填充的浮点数保留两位小数,可以用%f2表示,同时会对第三位小数进行四舍五入。例如:print(你花了%.2f元钱%(20.45978)#浮点数保留两个小数 运行结果如下:你花了20.46元钱5.1 字符串基础字符串的格式化通常有两种方式,除了之前提到的用函数的形式进行格式化以外,还可以用字符串格式化表达式来进行格式,常用%进行表示,其中%前面是需要格式化的字符串,而%后面就是需要填充的实际参数,这个实际参数其本质就是元组。%也可以理解为占位

13、符。例如:第五章 字符串与正则表达式 print(My name is%s,and I am%d%(Jack,9)#表达式格式化运行结果如下:My name is Jack,and I am 9注意:如果想要将后面填充的浮点数保留两位小数,可以用%f2表示,同时会对第三位小数进行四舍五入。例如:print(你花了%.2f元钱%(20.45978)#浮点数保留两个小数 运行结果如下:你花了20.46元钱5.1 字符串基础 大数据应用人才培养系列教材第五章 字符串与正则表达式5.1 字符串基础 5.2 字符串方法5.3 正则表达式习题5.4 实验5.5 小结字符串是str类型对象,所以Python

14、内置了一系列操作字符串的方法。其中常用的方法如下:1str.strip(chars)若方法里面的chars不指定默认去掉字符串的首、尾空格或者换行符,但是如果指定了chars,那么会删除首尾的chars例如:sample_fun1=Hello world#print(sample_fun1.strip()#默认去掉首尾空格 print(sample_fun1.strip(#)#指定首尾需要删除的字符 print(sample_fun1.strip(#)运行结果如下:Hello world#Hello worldHello world 5.2 字符串方法 第五章 字符串与正则表达式2str.co

15、unt(chars,start,end)统计chars字符串或者字符在str中出现的次数,从start顺序开始查找一直到end顺序范围结束,默认是从顺序0开始。例如:sample_fun2=abcdabfabbcd print(sample_fun2.count(ab,2,9)#统计字符串出现的次数运行结果如下:25.2 字符串方法 第五章 字符串与正则表达式3str.capitalize()将字符串的首字母大写。例如:sample_fun3=abc print(sample_fun3.capitalize()#首字母大写运行结果如下:Abc4str.replace(oldstr,newstr

16、,count)用旧的子字符串替换新的子字符串,若不指定count默认全部替换。例如:sample_fun4=ab12cd3412cd print(sample_fun4.replace(12,21)#不指定替换次数count print(sample_fun4.replace(12,21,1)#指定替换次数count运行结果如下:ab21cd3421cdab21cd3412cd5.2 字符串方法 第五章 字符串与正则表达式5str.find(str,start,end)查找并返回子字符在start到end范围内的顺序,默认范围是从父字符串的头开始到尾结束,例如:sample_fun5=0123

17、156 print(sample_fun5.find(5)#查看子字符串的顺序 print(sample_fun5.find(5,1,4)#指定范围内没有该字符串默认返回-1 print(sample_fun5.find(1)#多个字符串返回第一次出现时候的顺序运行结果如下:5-115.2 字符串方法 第五章 字符串与正则表达式6str.index(str,start,end)该函数与find函数一样,但是如果在某一个范围内没有找到该字符串的时候,不再返回-1而是直接报错。例如:sample_fun6=0123156 print(sample_fun6.index(7)#指定范围内没有找到该字

18、符串会报错运行结果如下:Traceback(most recent call last):File D:/python/space/demo05-02-03.py,line 2,in print(sample_fun6.index(7)#指定范围内没有找到该字符串会报错TypeError:must be str,not int5.2 字符串方法 第五章 字符串与正则表达式7str.isalnum()字符串是由字母或数字组成则返回true否则返回false。例如:sample_fun7=abc123#字符串由字母和数字组成 sample_fun8=abc#字符串由字母组成 sample_fun9

19、=123#字符串由数字组成 sample_fun10=abc12%#字符串由除了数字字母以为的字符组成print(sample_fun7.isalnum()print(sample_fun8.isalnum()print(sample_fun9.isalnum()print(sample_fun10.isalnum()运行结果如下:TrueTrueTrueFalse5.2 字符串方法 第五章 字符串与正则表达式8str.isalpha()字符串是否全是由字母组成的,是返回true,否则返回false。例如 sample_fun11=abc123#字符串中不只是有字母 sample_fun12=

20、abc#字符串中只是有字母print(sample_fun11.isalpha()print(sample_fun12.isalpha()运行结果如下:FalseTrue5.2 字符串方法 第五章 字符串与正则表达式9str.isdigit()字符串是否全是由数字组成,是则返回true,否则返回false。例如:sample_fun13=abc12#字符串中不只是有数字 sample_fun14=12#字符串中只是有数字print(sample_fun13.isdigit()print(sample_fun14.isdigit()运行结果如下:FalseTrue5.2 字符串方法 第五章 字符

21、串与正则表达式10str.isspace()字符串是否全是由空格组成的,是则返回true,否则返回false。例如:sample_fun15=abc#字符串中不只有空格 sample_fun16=#字符串中只有空格 print(sample_fun15.isspace()print(sample_fun16.isspace()运行结果如下:FalseTrue5.2 字符串方法 第五章 字符串与正则表达式11str.islower()字符串是否全是小写,是则返回true,否则返回false。例如:sample_fun17=abc#字符串中的字母全是小写 sample_fun18=Abcd#字符串

22、中的字母不只有小写 print(sample_fun17.islower()print(sample_fun18.islower()运行结果如下:TrueFalse5.2 字符串方法 第五章 字符串与正则表达式12str.isupper()字符串是否全是大写,是则返回true,否则返回false。例如:sample_fun19=abCa#字符串中的字母不全是大写字母 sample_fun20=ABCA#字符串中的字母全是大写字母 print(sample_fun19.isupper()print(sample_fun20.isupper()运行结果如下:FalseTrue5.2 字符串方法 第

23、五章 字符串与正则表达式13str.istitle()字符串首字母是否是大写,是则返回true,否则返回false。例如:sample_fun21=Abc#字符串首字母大写 sample_fun22=aAbc#字符串首字母不是大写 print(sample_fun21s.istitle()print(sample_fun22.istitle()运行结果如下:TrueFalse5.2 字符串方法 第五章 字符串与正则表达式14str.low()将字符串中的字母全部转换成小写字母。例如:sample_fun23=aAbB#将字符串中的字母全部转为小写字母 print(sample_fun23.lo

24、wer()运行结果如下:aabb 15str.upper()将字符串中的字母全部转换成大写字母。例如:sample_fun24=abcD#将字符串中的字母全部转为 print(sample_fun24.upper()运行结果如下:ABCD5.2 字符串方法 第五章 字符串与正则表达式16str.split(sep,maxsplit)将字符串按照指定的sep字符进行分割,maxsplit是指定需要分割的次数,若不指定sep默认是分割空格。例如:sample_fun25=abacdaef print(sample_fun25.split(a)#指定分割字符串 print(sample_fun25.

25、split()#不指定分割字符串 print(sample_fun25.split(a,1)#指定分割次数运行结果如下:,b,cd,efabacdaef,bacdaef5.2 字符串方法 第五章 字符串与正则表达式17str.startswith(sub,start,end)判断字符串在指定范围内是否以sub开头,默认范围是整个字符串。例如:sample_fun26=12abcdef print(sample_fun26.startswith(12,0,5)#范围内是否是以该字符开头运行结果如下:True 18str.endswith(sub,start,end)判断字符串在指定范围内是否是以

26、sub结尾,默认范围是整个字符串。例如:sample_fun27=abcdef12 print(sample_fun27.endswith(12)#指定范围内是否是以该字符结尾运行结果如下:True5.2 字符串方法 第五章 字符串与正则表达式19str.partition(sep)将字符串从sep第一次出现的位置开始分隔成三部分:sep顺序前、sep、sep顺序后。最后会返回出一个三元数组,如果没有找到sep的时候,返回字符本身和两个空格组成的三元数组。例如:sample_fun28=123456 print(sample_fun28.partition(34)#指定字符分割,能够找到该字符

27、 print(sample_fun28.partition(78)#指定字符分割,不能够找到该字符运行结果如下:(12,34,56)(123456,)5.2 字符串方法 第五章 字符串与正则表达式20str.rpartition(sep)该函数与partition(sep)函数一致,但是sep不再是第一次出现的顺序,而是最后一次出现的顺序。例如:sample_fun29=12345634 print(sample_fun29.rpartition(34)#指定字符最后一次的位置进行分割运行结果如下:(123456,34,)5.2 字符串方法 第五章 字符串与正则表达式 大数据应用人才培养系列教

28、材第五章 字符串与正则表达式5.1 字符串基础5.2 字符串方法 5.3 正则表达式习题5.4 实验5.5 小结5.3.1 认识正则表达式 正则表达式(Regular Expression),此处的“Regular”即是“规则”、“规律”的意思,Regular Expression即“描述某种规则的表达式”,因此它又可称为正规表示式、正规表示法、正规表达式、规则表达式、常规表示法等,在代码中常常被简写为regex、regexp或RE。正则表达式使用某些单个字符串,来描述或匹配某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索或替换那些符合某个模式的文本,如下面的表5.3、5.4

29、、5.5、5.6所示。5.3 正则表达式 第五章 字符串与正则表达式字符说明.匹配任意1个字符(除了n)匹配 中列举的字符dd匹配数字,即0-9D匹配非数字,即不是数字s匹配空白,即空格,Tab键S匹配非空白w匹配单词字符,即a-zA-Z0-9_W匹配非单词字符表5.3单个字符匹配5.3.1 认识正则表达式 5.3 正则表达式 第五章 字符串与正则表达式字符说明*匹配前个字符出现0次或者无限次,即可有可无+匹配前个字符出现1次或者无限次,即至少有1次?匹配前个字符出现1次或者0次,即要么有1次,要么没有m匹配前个字符出现m次m,匹配前个字符至少出现m次m,n匹配前个字符出现从m到n次字符说明匹

30、配字符串开头$匹配字符串结尾b匹配个单词的边界B匹配非单词边界表5.4表示数量的匹配表5.5 表示边界的匹配5.3.1 认识正则表达式 5.3 正则表达式 第五章 字符串与正则表达式字符说明|匹配左右任意个表达式(ab)将括号中字符作为个分组num引用分组num匹配到的字符串(?P)分组起别名(?P=name)引用别名为name分组匹配到的字符串表5.6 匹配分组5.3.2re模块在Python中需要通过正则表达式对字符串进行匹配的时候,可以导入个库(模块),名字为re,它提供了对正则表达式操作所需的方法,如表5.7。5.3 正则表达式 第五章 字符串与正则表达式方法说明re.match(pa

31、ttern,string flags)从字符串的开始匹配一个匹配对象,例如匹配第一个单词re.search(pattern,string flags)在字符串中查找匹配的对象,找到第一个后就返回,如果没有找到就返回Nonere.sub(pattern,repl,string count)替换掉字符中的匹配项re.split(r,text)分割字符re.findall(pattern,string flags)获取字符串中所有匹配的对象pile(pattern,flags)创建模式对象表5.7 re模块常见的方法5.3.3re.match()方法re.match()是用来进行正则匹配检查的方法,

32、若字符串匹配正则表达式,则match()方法返回匹配对象(Match Object),否则返回None(注意不是空字符串)。匹配对象Macth Object具有group()方法,用来返回字符串的匹配部分。常用格式为:re.match(pattern,string,flags=0)这里的pattern格式为(正则表达式,匹配的字符串)例如:import re#导入re包 sample_result1=re.match(Python,Python12)#从头查找匹配字符串 print(sample_result1.group()#输出匹配的字符串运行结果如下:Python5.3 正则表达式 第五

33、章 字符串与正则表达式5.3.4re.search()方法re.search()方法和re.match()方法相似,也是用来对正则匹配检查的方法但不同的是search()方法是在字符串的头开始一直到尾进行查找,若正则表达式与字符串匹配成功,那么就返回匹配对象,否则返回None。例如:import re sample_result2=re.search(Python,354Python12)#依次匹配字符串 print(sample_result2.group()运行结果如下:Python5.3 正则表达式 第五章 字符串与正则表达式虽然re.match()和re.search()方法都是指定的

34、正则表达式与字符串进行匹配,但是 re.match()是从字符串的开始位置进行匹配,若匹配成功,则返回匹配对象,否则返回None。而re.search()方法却是从字符串的全局进行扫描,若匹配成功就返回匹配对象,否则返回None。例如:import re sample_result3=re.match(abc,abcdef1234)#match只能够匹配头 sample_result4=re.match(1234,abcdef1234)print(sample_result3.group()print(sample_result4)5.3 正则表达式 第五章 字符串与正则表达式5.3.4re.

35、search()方法与re.match()方法的区别 sample_result5=re.search(abc,abcdef1234)#search匹配全体字符 sample_result6=re.search(1234,abcdef1234)print(sample_result5.group()print(sample_result6.group()运行结果如下:abcNoneabc12345.3 正则表达式 第五章 字符串与正则表达式5.3.4re.search()方法与re.match()方法的区别 大数据应用人才培养系列教材第五章 字符串与正则表达式5.1 字符串基础5.2 字符串方

36、法5.3 正则表达式习题 5.4 实验5.5 小结1我们常看到自己电脑上的文件路径如 C:WindowsLogsdosvc,请将该路径分割为不同的文件夹。sample_str1=C:WindowsLogsdosvc sample_slipstr=sample_str1.split()#转义字符要转一次才是本意 print(sample_slipstr)运行结果如下:C:,Windows,Logs,dosvc2Python的官网是https:/www.python.org判断该网址是否是以org结尾。sample_str2=https:/www.python.org print(sample_s

37、tr2.endswith(org)#从字符串末尾开始查找运行结果如下:True5.4 实验 第五章 字符串与正则表达式5.4.1 使用字符串处理函数写出一个正则表达式来匹配是否是手机号。import re#定义一个正则表达式 phone_rule=pile(1d10)phone_num=input(请输入一个手机号)#通过规则去匹配字符串 sample_result3=phone_rule.search(phone_num)if sample_result3!=None:print(这是一个手机号)else:print(这不是一个手机号)运行结果如下:请输入一个手机号12312345678这是

38、一个手机号Process finished with exit code 0 请输入一个手机号24781131451这不是一个手机号Process finished with exit code 05.4 实验 第五章 字符串与正则表达式5.4.2 正则表达式的使用用两种方式写出一个正则表达式匹配字符Python123中的Python并输出字符串Python。import re#导入re包 sample_regu=pile(Python)#定义正则表达式规则 sample_result4=sample_regu.match(Python123)#用match方式匹配字符串 print(samp

39、le_result4.group()#用search方式匹配字符串 sample_result5=sample_regu.search(Python123)print(sample_result5.group()5.4 实验 第五章 字符串与正则表达式5.4.3 使用re模块 大数据应用人才培养系列教材第五章 字符串与正则表达式5.1 字符串基础5.2 字符串方法5.3 正则表达式习题5.4 实验 5.5 小结本章首先讲解了Python字符串概念,字符串的基本操作;其次是字符串的格式化,主要的格式化符号、格式化元组;还有操作字符串的基本方法,这些符号和方法在Python的开发中会被经常使用到。

40、之后,我们学习了正则表达式,re模块和正则表达式的基本表示符号,这些符号可以帮助简化正则表达式。正则表达式的用途非常广泛,几乎任何编程语言都可以使用到它,所以学好正则表达式,对于提高自己的编程能力有非常重要的作用。5.5 小结 第五章 字符串与正则表达式 大数据应用人才培养系列教材第五章 字符串与正则表达式5.1 字符串基础5.2 字符串方法5.3 正则表达式 习题5.4 实验5.5 小结1.将字符串abcdefg 使用函数的方式进行倒叙输出。2.在我们生活中节假日的问候是必不可少的,请使用字符串格式化的方式写一个新年问候语模板。3.写出能够匹配163邮箱()的正则表达式。4.简述re模块中re.match()与re.search()的区别。习题:感谢聆听

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

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(Python语言字符串与正则表达式课件.pptx)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|