day15学习笔记(异常和正则)

异常和正则

异常捕获

1.概念

程序执行过程中出现异常时可以继续运行
注意:只有在知道某个位置可能会出现异常,又想让程序继续运行时使用

2.异常捕获语法

1)语法一:捕获所有异常
try:
代码段1
except:
代码段2
说明:
代码段1 - 需要捕获异常的代码
代码段2 - 捕获异常后需要执行的代码

2)语法二:针对指定类型的异常进行捕获
try:
代码段1
except 异常类型:
代码段2

3)语法三:同时捕获多种异常,针对不同异常做相同处理
try:
代码段1
except (异常类型1,异常类型2,…):
代码段2

4)语法四:同时捕获多种异常,针对不同异常做不同处理
try:
代码段1
except 异常类型1:
代码段11
except 异常类型2:
代码段22
except 异常类型3:
代码段33

3.finally类型

所有异常捕获结构最后都可以添加finally关键字
try:
代码段1
except:
代码段2
finally:
代码段3

代码段3任何情况都会执行

正则表达式

re模块:python提供使用正则表达式的相关函数的模块

1.正则表达式

正则表达式是一种让字符串处理更简单的工具(本质是做字符串匹配)

2.正则表达式语法

fullmatch(正则表达式,字符串) - 正则表达式与字符串进行完全匹配,如果匹配失败结果是None
js的正则:/正则表达式/
python的正则:r’正则表达式’
字符:
1)普通字符 - 表示字符本身
2). - 匹配一个任意字符
3)\w - 匹配任意一个数字、字母、下划线(仅ASCII码表有效,正常不用)
4)\d - 匹配任意一个数字字符
5)\s - 匹配任意一个空白字符
6)\S或\D - 匹配一个非空白字符或非数字字符
7)[字符集] - 匹配字符集中出现的任意一个字符
注意:一个[]只能匹配一个字符
[abc123] - 匹配a,b,c,1,2,3中任意一个字符
[a-z] - 匹配从字符a到字符z之间的任意一个字符(任意一个小写字母)
[A-Z] - 匹配任意一个大写字母
[a-zA-Z] - 匹配任意一个字母
[0-9] - 匹配任意一个数字字符
[\u4e00-\u9fa5] - 匹配任意一个中文字符
8)[^字符集] - 匹配字符集以外的任意一个字符

检测符号:
1)\b - 检测是否是单词的边界
单词边界:字符串开头、字符串结尾、能区分两个不同单词的符号
注意:匹配成功后做进一步检测
2)^ - 检测^所在位置是否是字符串开头
3)$ - 检测$所在位置是否是字符串结尾

匹配次数:
1)* - 匹配0次或任意次
2)+ - 匹配1次或多次
3)? - 匹配0次或1次
4){}: {N} - 匹配N次
{M,N} - 匹配M到N次
{M,} - 匹配至少M次
{,N} - 匹配最多N次

贪婪和非贪婪
在匹配次数不确定的情况下,匹配模式分为贪婪和非贪婪,默认都是贪婪
1)贪婪:能匹配前提下,匹配次数尽可能多
2)非贪婪:匹配次数不确定时,次数后面加问号,匹配就是非贪婪

from re import fullmatch
re_str = r'[a-zA-Z\d_]abc'
result = fullmatch(re_str, '7abc')
print(result)

print(fullmatch(r'[+-]?\d+', '-123'))

分支和分组

1.分支:| - 正则1|正则2|正则3

from re import fullmatch
result = r'123abc|456abc'
print(fullmatch(result,'123abc'))

2.分组:()

1)整体操作
result = r’(abc){3}’
2)重复:\M - 重复前面第M个分组匹配到的内容(M>=1)
3)捕获:
findall

3.转义符号:在具有特殊功能或特殊意义的符号前加\,让特殊功能消失

注意:独立存在的有特殊功能的符号在[]中,特殊功能自动消失

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值