day15正则表达式

day15正则表达式

  1. 什么时异常捕获:程序报错出现了异常

    程序异常的后果:程序会直接结束,不会往后面执行

  2. 异常捕获

    1. 目的:当程序出先异常的时候,程序不崩溃继续执行后面的代码

    2. 什么时候需要捕获:知道某个地方出现异常,但是代码没有问题(用户的不当操作)这个时候需要异常捕获

      语法1: — 捕获所有异常类型

      try:

      ​ 代码段1

      except:

      ​ 代码段2

      说明:try、except – 关键字:固定写法

      代码段一:需要捕获异常的代码

      代码段二:捕获到异常后执行的代码

      执行过程:会先执行try后面的代码。没有异常直接执行后面的其他代码(不执行代码段二);如果代码段1出席那异常,程序不崩溃,直接执行except后面的代码段2

      语法2:— 捕获指定类型异常

      try:

      ​ 代码段1

      except:异常类型

      ​ 代码段2

      语法3: — 同时捕获多种异常,进行相同的处理

      try:

      ​ 代码段1

      except:(异常类型1,异常类型2…)

      ​ 代码段2

      语法4:

      try:

      ​ 代码段1

      except:异常类型1

      ​ 代码段11

      except:异常类型2

      ​ 代码段22

  3. 关键字finally

    finally的存在并不影响原来异常捕获

    finally后面得分代码不管try里面的代码发生什么情况都会执行,就算代码段1出现异常没有被捕获到finally后面的代码也会被执行)

正则匹配类符号
  1. 1.什么是正则表达式
    正则表达式是让复杂的字符串处理变得更加简单的工具

#2.正则语法
fullmatch(正则表达式, 字符串) – 判断指定的字符串是否满足正则表达式的规则,如果不符合返回None
python中正则表达式式写到单引号或者双引号中’正则表达式’,js中放在两个/中 /正则/

  1. 普通字符
    普通字符指的是除了特殊符号以外的符号
    普通字符在正则中表示这个字符本身

  2. 特殊字符 . – 匹配任意字符

3)\d – 匹配一个任意的数字

4)\s – 匹配一个任意空白字符
空白字符:空格、\n、\t

5)\D – 匹配任意一个非数字字符

6)\S – 匹配任意一个非空白字符

7)[字符集] – 匹配字符集中任意一个字符
[\u4e00-\u9f5a] – 匹配任意一个中文

注意:1.一个中括号只能匹配到一个字符
2.减号如果在两个字符之间表示范围,在-号前面的编码值必须小于后面的编码值
3.如果减号不在两个字符之间表示本身
[adc-] 匹配其中一个 -表示本身
8)[^字符集] – 匹配不在字符集中的任意一个字符

​ [^abc] - 匹配除了‘a’’b‘'c’以外的任意字符

匹配次数
  1. * 匹配0次或者多次

    re_str = r'1[fgh]*2'
    result = fullmatch(re_str, '12')
    print(result)
    
    re_str = r'1[fgh]*2'
    result = fullmatch(re_str, '1fggh2')
    print(result)
    

​ 2.+ 匹配一次或者多次

         ```python

re_str = r’1[fgh]+2’
result = fullmatch(re_str, ‘1f2’)
print(result)
```

  1. ? 匹配0次或者1次

    re_str = r'1[fgh]+2'
    result = fullmatch(re_str, '1f2')
    print(result)
    
    
  2. {}

    '''
    {N}  --  匹配N次
    {M,N} -- 匹配M到N次
    {M,} -- 匹配至少M次
    {,N} -- 最多N次
    就是一个数据([]也可以)在范围内的出现次数
    '''
    re_str = r'a[a-z]{,5}b'
    result = fullmatch(re_str, 'adfhdfb')
    print(result)
    
  3. 贪婪和非贪婪
    在匹配次数不确定的时候匹配模式分贪婪和非贪婪
    (1)贪婪:在能匹配成功的前提下尽可能多的去匹配
    默认情况下,所有不确定次数的匹配都是贪婪
    (2)非贪婪:在能匹配成功的情况下尽可能少的去匹配
    在匹配次数不定的次数后加?,就变成非贪婪模式
    re_str = r’a.*b’
    result = search(re_str, ‘电脑0a5555b5b手机家电bf’)
    print(result)

分支和分组
分组 - 用()将正则的一部分括起来看成一个整体进行操作

re_str = r’(\d{2}[a-z]{3}){3}’
print(fullmatch(re_str, ‘22sss22sss22sss’))

用法二
在包含分组的正则中可以同通过\N来重复前面第N个分组匹配到的内容

用法三:捕获(只针对findall)
re_str = r’name:’
print(findall(re_str, ‘tel:23768, name:xiaoming, age:18岁,id:27237486; tel:72891, name:张三, age:67岁, id:23479782’))

分支 – |
re_str = ‘abc\d{3}|abc[A-Z]{3}’
print(fullmatch(re_str, ‘abcFKJ’))

re_str = ‘abc(\d{3}|[A-Z]{3})’
print(fullmatch(re_str, ‘abcAAA’))

with open(‘data.txt’, ‘r’, encoding=‘utf-8’) as f:
s = f.read()
re_str = ‘“provinceName”😦".+?")’
result = findall(re_str, s)
print(result)

转义符号
import array

正则的转义符号:在具有特殊功能或者特殊意义的符号前加,让符号原来的意义消失,表示符号本身

在具有特殊功能或者特殊意义的符号放在[]里面,
对用的功能会自动消失,例如+、?+、*、$、| 等、^(不放在最前面)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值