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的现象