版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Python基础课教室讲师:聆听时间:2018年5月教学监督热线教学监督热线01020304必须掌握:推导表达式必须掌握:yield用法必须掌握:模块的概念和导入方法必须掌握:包和包管理知识点回顾本节知识点01.正则02.元字符教学监督热线03.re模块PARTONE正则教学监督热线思考01在实际的应用中,我们会经常得到用户的输入,在得到用户的输入之后,需要我们对输入进行判断时候合法,比如判断输入的手机号码,从形式上来看是争取的呢?正则01:使用函数02:使用正则
通过对比,可以很明显的发现,下面这种方式能够简单快捷的匹配出电话号码x=input('请输入手机号码:')
defphone_check(phone):
st_phone=str(phone)
ifst_phone.startswith('1')andlen(st_phone)==11andst_phone.isdigit():
print(st_phone)
else:
print('请输入正确的电话号码')importre
x=input('请输入手机号码:')
defphone_check(phone):
st_phone=str(phone)
ifre.search(r'^1\d{10}',st_phone)isNone:
print('请输入正确的电话号码')
else:
print(st_phone)正则表达式正则表达式匹配应用通过正则匹配,可以迅速的过滤出我们需要的全部或者一部分字符串,查找文本中的特质值(如:病毒)等等通过式就可以去匹配现有的字符串正则表达正则表达式是一种通用的用来简洁表达一组字符串的表达式,因此,正则表达式是和python无关的,在其他的语言或者不同的系统中,是通用的正则总结必须掌握:正则的概念PART
TWO元字符教学监督热线思考01正则表达式该如何书写呢?元字符元字符:
.
^
$
*
+
?
{}
[]
\
|
()点脱字符美元符号乘号加号问号花括号中括号反斜杠竖线小括号正因为有这些元字符的存在,正则表达式才变得强大元字符. 通配符,匹配任意字符\ 正则转义^ 匹配字符串的开始位置,在[]表示不取字符
$ 匹配字符串的结束位置{} 匹配次数* 匹配0次或多次+ 匹配1次或多次
? 匹配0次或1次
[] 字符集合() 分组匹配| 或运算分支条件元字符0102观察如下两个例子:re.search('a','abc')re.search('.','ab.cd.de')在第一个例子中,可以匹配出a但是下面这个不能匹配,但是下面这个没有匹配出点,而是匹配到a
这个.不是不能匹配到点,而是匹配任意字符,这个点已经被赋予了特殊的含义,.(点)就是一个元字符\
.
^
$03040102\re.search('\bs\b','abcsdsw')re.search(r'\bs\b','abcsdsw')在正则中,加上r
去掉字符串的转义,以免影响正则的使用.re.search(r'.','hc')re.search(r'.','\nhc')匹配除换行符之外的所有的字符\d匹配0~9的数字 re.search(r'\d','ab12')\s匹配任意的空白符,包括空格,制表符(Tab),换行符等 re.search(r'\s','ab12')\w匹配字母或数字或下划线或汉字等
\b表示单词的边界 re.search(r'\w','ab12')\.
表示匹配点号本身 re.search(r'\.','adc.123')\D、\S、\W、\B是与小写的相反的作用 re.search(r'\D','adc123')\D除啦数字以外的字符^
脱字符,匹配输入字符串的开始的位置 re.search(r'^a','adc.123')$
匹配输入字符串的结束位置 re.search(r'3$','adc.123'){}
*
+
?03040102{}re.findall(r'\d{1,3}','12ab23344'){M,N}M和N为非负整数,其中M<=N表示前面的匹配M~N次{M,}表示需要匹配M次{,N}等价于{0~N}{N}表示需要匹配N次*re.findall(r'\d*','12ab23344')#
{0,}匹配前面的子表达式零次或多次,等价于{0,}+re.findall(r'\d+','12ab23344')
匹配前面的子表达式一次或多次,等价于{1,}?re.findall(r'\d?','12ab23344')匹配前面的子表达式零次或一次,等价于{0,1}贪婪与非贪婪0102*?+?re.findall(r'\d*?','12ab23344')re.findall(r'\d+?','12ab23344')st="<html>aaaa</html><td>bbbb</td>"re.findall(r'<.*>',st)re.findall(r'<.*?>',st)在非贪婪模式下,始终找最短匹配[]字符集合0102[]字符类,将要匹配的一类字符集放在[]里面re.findall(r'[\d]','12ab23344')
re.findall(r'[ab]','12ab23344')
re.findall(r'[a|b]','12ab23344')[.?*(){}]
匹配里面的这些符号
[0-9]
匹配0到9的数字相当于\d
[^\d]
匹配除数字以外的字符,相当于\D取反的意思
[a-z]
匹配所有的小写字母
[^a-z]
匹配非小写字母
|
相当于或(or)分支条件()分组匹配01()分组,将要匹配的一类字符集放在()组成一个小组re.findall(r'(2|3)','12ab.?*(){}23344')
re.findall(r'(\d)','21abc323')
re.findall(r'(^2)','21abc323')分组匹配匹配()内的字符串组合元字符总结必须掌握:所有元字符的用法和作用PARTTHREEre模块教学监督热线思考01在python中如何使用正则呢?re模块03040102complie 编译正则表达式为模式对象r=pile(r'\d')
r.findall('123ab12')当正则表达式多次使用,可以采用这种方式sub 字符串替换re.sub('i','o','pythin',1)match从字符串开始匹配r=re.match(r'\d','1223ag')
re.match(r'\d','ad1223ag')r.group() 得到匹配到的元素r.start() 得到开始位置r.end() 得到结束为止r.span() 得到位置范围注意:这几个方法在search中也存在在re中也有和字符串一样的split方法re.split(r'\s','aggbbwcee')
re.split(r'[\s|,]','aggbbw,cee')
re.split(r'\s','cee')
re.split(r'[\s|,]','aggbbw,acee')re
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年成都市居间期货交易合同
- 2024年影视作品改编权转让合同
- 2024年战略合作履约保证函
- 2024年工程廉政保障协议
- 2024年合作协议书:酒店管理与运营合作
- 2024年品牌授权与使用许可合同
- 2024年度保险经纪合同保险产品与保险费用结算
- 2024铲车安全操作与维护协议条款
- 2024年天然气储存转运站建设合同
- 2024年店铺装修与物业公司协议
- 儿童早期的认知发展-皮亚杰前运算阶段(三座山实验)
- 国开一体化平台01588《西方行政学说》章节自测(1-23)试题及答案
- 2024年极兔速递有限公司招聘笔试参考题库附带答案详解
- 2024年威士忌酒相关公司行业营销方案
- 网络游戏危害课件
- 2024供电营业规则学习课件
- 铁路给水排水设计规范(TB 10010-2016)
- GINA2023-哮喘防治指南解读-课件
- 2024年上海市第二十七届初中物理竞赛初赛试题及答案
- 寝室设计方案方法与措施
- 收费站冬季安全注意事项
评论
0/150
提交评论