首页 > 其他分享 >re模块02-re模块

re模块02-re模块

时间:2023-02-05 22:00:59浏览次数:36  
标签:02 group jieGuo re 分组 模块 print import

re模块是内置模块

findall()方法

按照完整的正则进行匹配,有括号(分组)只是显示括号里匹配到的内容
匹配结果是以列表的形式返回所有正则匹配的内容

import re
jieGuo=re.findall('5\d\d','dfdfsd4584573485')
print(jieGuo) #['584', '573']

findall:取所有符合条件的,优先显示分组中的
有分组,按照正则表达式查找,但是只显示分组的内容

search()方法

按照完整的正则进行匹配,显示的是匹配到的第一个内容,但是我们可以通过给group方法传参数
来获取具体文组中的内容
结果是对象,通过group方法获取一个正则匹配的内容,匹配不到时对象结果返回None,此时group()取不到值就报错,可以通过异常处理设置

1、没有获取结果

import re
jieGuo=re.search('(\w)(\w)(\w)','!@#')
print(jieGuo) #None

2、获取到结果

ret = re.search('<(\w+)>(\w+)</\w+>','<h1>askh930s02391j192agsj</h1>')
print(ret.group())#默认参数0,显示全部
print(ret.group(1))
print(ret.group(2))

search 只取第一个符合条件的,没有优先显示这件事儿
得到的结果是一个变量
变量.group() 的结果 完全和 变量.group(0)的结果一致
变量.group(n) 的形式来指定获取第n个分组中匹配到的内容

如果我们要查找的内容在一个复杂的环境中
我们要查的内容并没有一个突出的 与众不同的特点 甚至会和不需要的杂乱的数据混合在一起
这个时候我们就需要把所有的数据都统计出来,然后对这个数据进行筛选,把我们真正需要的数据对应的正则表达式用()圈起来
这样我们就可以筛选出真正需要的数据了

现象

分组和findall的现象

  1. 为什么要用分组?
    把想要的内容放分组里
  2. 如何取消分组优先
    如果在写正则的时候由于不得已的原因 导致不要的内容也得写在分组里
    (?

    标签:02,group,jieGuo,re,分组,模块,print,import
    From: https://www.cnblogs.com/qianshuiliyu/p/17094035.html

相关文章