1. 正则和 re 模块的联系
正则表达式是一种通用的用来简洁表达一组字符串的表达式,利用正则表达式可以方便快捷地匹配和筛选字符串。
举个例子:在一堆数据中寻找电话号码,我们需要根据特征进行查找。电话是 11 位数字,基于特征寻找。
正则的一些方法都放在 re 模块中。re 模块使 Python 语言拥有全部的正则表达式功能,提供了与这些方法功能完全一致的函数,使用一个模式字符串作为第一个参数。
import re
正则在爬虫中很常见,在大量字符串中进行数据寻找。
例如匹配 11 位数字:\d{11}。
匹配手机号(第一位 1,第二位 3-9,后面 9 位数字):1[3-9]\d{9}。
2. re 模块的一些方法
re.match--从字符串开头进行匹配---匹配一次
re.match() 必须从字符串开头匹配。如果不是起始位置匹配成功,返回 None。
只会匹配一次数据。如果匹配失败返回 None,成功返回匹配的范围区间。
import re
r = re.match('test', 'testabcdfgsdtest')
print(r) # <re.Match object; span=(0, 4), match='test'>
r = re.match('test', 'Testabcdfgsdtest')
print(r) # None
获取匹配内容:
import re
r = re.match('test', 'testabcdfgsdtest')
print(r.group()) # test
获取匹配位置:
import re
r = re.match('test', 'testabcdfgsdtest')
print(r.span()) # (0, 4)
这里的 (0, 4) 是左闭右开区间。
re.search---在字符串任意位置都能进行查找---匹配一次
re.search() 方法只在目标字符串中匹配一次满足条件的正则表达式,返回查找字符的位置。
不管在哪个位置都可以进行目标寻找,只匹配第一次满足条件的一串字符。
import re
r = re.search('test', 'tdestabcdfgsdtest')
(r)
(r.group())
(r.span())


