正则表达式(Regular Expression)是使用单个字符串来描述、匹配一系列语法规则的字符串。简称RE。
RE是爬虫的基础模块,可以用于验证电话号码,身份证号,邮箱,用户名和密码,url地址等。
操作步骤
调用re模块(python内嵌的包)
import re
使用match或者search方法进行匹配操作
a=re.match(pattern,string,flags=0)
pattern 匹配规则模式
string 要匹配的字符串
匹配到的数据通常使用group等方法来提取(字符串格式),groups(所有分组元组格式)
import re
try:
pattern=r'(\w+) (\w+)(?P<name>.)*'
string='青苔 asd123!!!'
a=re.match(pattern,string)
print('匹配成功,结果为:',a.group)
except:
print('匹配失败!')
输出—>匹配成功,结果为:青苔asd
match函数的属性
string:匹配时使用的文本
re:匹配时使用的pattren对象
pos:文本中正则表达式开始搜索的索引。值与 Pattern.match()和 Pattern.seach()方法的同名参数相同。
endpos: 文本中正则表达式结束搜索的索引。值与 Pattern.match()和 Pattern.seach()方法的同名参数相同。
lastindex: 最后一个被捕获的分组在文本中的索引。如果没有被捕获的分组,将为 None。
lastgroup: 最后一个被捕获的分组的别名。如果这个分组没有别名或者没有被捕获的分组,将为 None。
match函数的方法
group 函数,获取一个或多个分组的字符串。
start 函数,返回指定的组截获的子串在 string 中的起始索引。
end 函数,返回指定的组截获的子串在 string 中的结束索引。
span 函数,返回指定的组截获的子串在 string 中的结束索引。
expand 函数,将匹配到的分组代入 template 中然后返回。
个人理解:match和search方法很相似,但search方法用来匹配字符串中间的数据,而match方法只能从头开始检索。