Python 正则表达式RE模块里面的group方法用着挺方便的,
在这里写博客做个简单的记录,方便日后查阅

运行环境 Runtime environment

1
2
3
操作系统: Windos10  
IDE: JetBrains Pycharm 2019.2.4 x64
语言: Python 3.7.4

背景

出于学习的目的,去尝试在中国供应商网练习字体反爬,过程中看到group的用法。

代码说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import requests
import base64
import re

url = 'https://ph0101.cn.china.cn/contact-information/'
res = requests.get(url).text
# print(res)
# 使用正则清洗出base64,并用group方法方便的从re.match对象中多个成立结果选取第一个。
base64_group = re.search("base64,(.*?)'\)",res).group(1)
base64_groups = re.search("base64,(.*?)'\)",res).groups()
base64_demo = re.search("base64,(.*?)'\)",res)
print("base64_group %s"%base64_group)
print("base64_groups %s"%base64_groups)
print("base64_demo %s"%base64_demo)

运行结果

总结

前面通过括号()的方式来匹配正则表达式,会发现有多个成立的,
如果把这些匹配的结果放到一个元组里,怎么样访问这些匹配的结果呢?
在这里使用groups()函数来访问,
在这里使用group(索引数)函数来访问多个匹配结果中的某一个,
直接打印re.search结果可以看到得到是个re.match对象。

简而言之就是方便从re.match对象取出匹配值使用的,与findall不同。