正则语法、类和对象

正则语法

  • 贪婪和非贪婪

    当匹配次数不确定时,匹配分为贪婪和非贪婪模式

    贪婪:在能够成功匹配的前提下,匹配次数尽可能多的匹配,默认情况下都是贪婪的

    非贪婪:在能够成功匹配的前提下,匹配次数尽可能少的匹配,在不确定的次数后加?就是非贪婪的

    ​ 如:*?,+?,??,{M,N}?,{M,}?,{,N}? (fullmatch中贪婪与非贪婪没有区别)

  • 检测符号

    检测符号只做检测,不会做匹配

    • \b - 检测是否是单词边界(任何可以隔开单词的符号,如:空格、标点符号、字符串开头或结尾)
    • ^ - 检测是否是字符串开头
    • $ - 检测是否是字符串结尾
  • 分支 - |

    |在正则中表示或者

    正则表达式1|正则表达式2|正则表达式3|… - 让字符串先个第一个正则表达式匹配,若失败则和下一个正则表达式匹配,以此类推

  • 分组 - ()

    • 将正则的部分内容看做一个整体进行操作
    • 分组和\N配合使用控制匹配内容重复

re模块

  • .compile(正则表达式) - 编译正则表达式,创建一个正则表达式对象

    re.fullmatch(正则表达式,字符串)

    正则对象.fullmatch(字符串)

  • 匹配

    1. fullmatch(正则表达式,字符串) - 完全匹配,查看整个字符串是否和正则表达式匹配,匹配成功则返回匹配对象,否则返回None

    2. match(正则表达式,字符串) - 匹配字符串开头,查看字符串开头是否与正则表达式匹配,匹配成功则返回匹配对象,否则返回None

    3. 匹配对象(Match对象)

      • 获取匹配到的字符串

        匹配对象.group() - 获取整个正则匹配到的结果

        匹配对象.group(N) - 获取正则中第N个分组匹配到的结果

      • 获取匹配到的字符串在原字符串中的位置

      • 获取原字符串

  • 查找

    1. search.(正则表达式,字符串) - 在字符串中获取第一个满足正则表达式的子串,若找到了返回匹配对象,否则返回None

    2. findall.(正则表达式,字符串) - 获取字符串中所有满足正则表达式的子串,返回一个列表,列表中的元素就是匹配到的子串

      • 正则中没有分组 - 列表中的元素就是整个正则匹配到的子串

      • 正则中有一个分组 - 匹配成功后将分组匹配到的子串作为列表元素

      • 正则中有多个分组 - 匹配成功后每个匹配结果都是一个元组,元组中的元素是每个分组匹配到的内容,将元组最为列表元素

    3. finditer(正则表达式,字符串) - 获取字符串中所有符合正则表达式的子串,返回一个迭代器,迭代器中的元素就是匹配对象

  • 字符串替换

    sub(正则表达式,新字符串,原字符串) - 将原字符串中所有满足正则表达式的子串全部替换成新字符串

  • 字符串分割

    split(正则表达式,字符串) - 将字符串中满足正则表达式的子串作为切割点切割字符串

忽略大小写和多行匹配

  • 忽略大小写 - 在正则表达式最前面加(?i)

  • 单行匹配: .能够匹配换行符的匹配模式,在正则最前面加(?s)

    默认是多行匹配: .不能匹配换行符

  • 符号的转义:

    在正则中有特殊意义或特殊功能的符号前加\,让它的功能消失只标示自身

    在[]外独立存在且有特殊功能的符号,在[]中功能会直接消失

类和对象

  • 什么是类什么是对象

    类就是具有相同功能、相同属性的对象的集合(某一类事物的统称,抽象的概念)

    对象就是类的实例(类的具体表现)

  • 定义类 - 表述清楚是那些相同功能,相同属性的统称

    语法:

    class 类名:

    ​ 类的说明文档

    ​ 类的内容(方法、属性)

    说明:

    class - 关键字,固定写法

    类名 - 程序员自己命名

    ​ 要求:是标识符,不是关键字

    ​ 规范:采用驼峰式命名,且首字母大写

    ​ 见名知意

    ​ 不能使用系统的函数名、类名、模块名

    类的说明文档 - 和函数的说明文档一样

    类的内容 - 类的内容主要包含类的方法(对象方法、类方法、静态方法)和属性(类属性、对象属性)

    方法:方法就是定义在类中的函数

  • 定义对象(创建对象)

    语法:

    类()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值