二十七、Python--正则表达式(下)

目录

4.正则分组         

        4.1捕获分组

        4.2非捕获分组(?:规则)

        4.3分组向后引用

        4.4命名分组(?P规则)

5.正则标记

        5.1第三个参数

         5.1.1 re.I使大小写不敏感​

         5.1.2re.M 多行匹配,影响^和$

         5.1.3re.S匹配包括换行符在内的所有字符

         5.2内联标记

6.正则断言

        6.1零宽正向先行断言:(?=pattern)

        6.2零宽负向先行断言(?!pattern)

        6.3零宽正向后行断言(?<=pattern)

        6.4零宽负向后行断言(?


4.正则分组         

        当使用分组时,除了可以获得整个匹配,还能够获得选择每一个单独组,使用 () 进行分组

        4.1捕获分组

          分组之后匹配到的数据会放在内存里,并且给定一个从1开始的索引

        # 默认参数0 表示输出匹配的整个字符串

        # 默认参数n(n>0) 表示输出第n个分组字符串

        #如果有捕获分组,使用findall只会匹配捕获分组内容,re.findall()返回的使用列表,所以不需要也不能使用ret.group()来获取内容,

        4.2非捕获分组(?:规则)

        只分组不捕获,不放在内存里

        #非捕获分组不放在内存中,所以元组为空

        4.3分组向后引用

        使用()分用,用\0, \1, \2引用 (\0表示匹配的整个串)

 

        4.4命名分组(?P<name>规则)

        #使用字典来获取命名和内容

5.正则标记

        5.1第三个参数

         5.1.1 re.I使大小写不敏感

         5.1.2re.M 多行匹配,影响^和$

         #可以yong使用|来添加多个参数

         5.1.3re.S匹配包括换行符在内的所有字符

         5.2内联标记

        推荐使用内联标记

6.正则断言

        #它们只匹配某些位置,在匹配过程中,不占用字符,所以被称为“零宽”。

        6.1零宽正向先行断言:(?=pattern)

        #表示这个位置之后能够匹配patten的子串,满足表达式的内容

        #第一个print表示匹配re,但后面必须紧跟着gular,regular满足,所以输出re,断言内的gular不会输出。第二个print表示匹配的是re,但后面必须紧跟着gularr,s字符串没有满足的,所以无输出。

        6.2零宽负向先行断言(?!pattern)

        #代表一个位置,之后不能能够匹配patten的序列,满足表达式的内容

         #第一个print表示匹配的是re,但紧跟着的不能是gular,ression满足,所以输出re。第二个print表示匹配的是re,但紧跟着的不能是gularr,regular和repssion满足,所以输出两个re

        6.3零宽正向后行断言(?<=pattern)

         代表字符串中的一个位置,该位置之前的字符序列能够匹配pattern

         #第一个print表示匹配的gular但前面必须是re,regular中就有这个位置,所以会输出gular,断言内的内容不会输出。第二个print表示匹配的是gular,但前面必须是rre,s字符串没有,所以不会有输出。

        6.4零宽负向后行断言(?<!pattern)

        代表字符串中的一个位置,该位置之前的字符序列不能够匹配pattern

         第一个print表示匹配的是gular,但左边不能是re,rbgular满足所以输出gular,断言内的内容不会输出。第二个print表示匹配的gular,但左边不能是ree,regular和rbgular都满足,所以会输出两个gular。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值