栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

爬虫(4)——re正则匹配数据

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

爬虫(4)——re正则匹配数据

目录

1. re.compile函数

2. re.match函数

3. 其他函数


使用XPath可以从HTML源码中提取数据,但是XPath有局限性,只能在结构化的HTML或XML格式的文档中。正则表达式则比较通用。

1. re.compile函数

语法格式如下:

re.compile(patten,[flags])
#patten:一个字符串形式的正则表达式
#flags:可选参数,re.M为多行模式;re.S表示匹配包括换行符在内的任意字符,等

例如:

import re

obj1=re.compile(r"d+") #预加载模式正则表达式,匹配数字一次或多次
obj2=re.compile(r"d{6}") #预加载模式正则表达式,匹配数字六次
str = "a1001010086"
result1 = obj1.findall(str)
result2 = obj2.findall(str)
print(result1)
print(result2)

运行结果如下:

['1001010086']
['100101']

2. re.match函数

re.match在正则中有讲过match()函数的匹配模式,该函数主要尝试从字符串的起始位置匹配,如果起始位置没有匹配成功,返回none,匹配成功则返回一个包含位置的元组类型的数据。

语法格式如下:

re.match(pattern,string,[flags])
#pattern:模式字符串
#string:要匹配的字符串
#flags:可选参数,表示标志位,用于控制匹配方式

例如:

import re #导入模块
pattern = re.compile(r'my_w+') #模式字符串,匹配以my开头的字符串
string1 = 'MY__SCHOOL my_school' #要匹配的字符串1
string2 = '学校MY__SCHOOL my_school' #要匹配的字符串2
match1 = pattern.match(string1,re.I) #匹配字符串,不需分字母大小写
match2 = re.match(r'my_w+',string1,re.I)
match3 = pattern.match(string1) #匹配字符串,需分字母大小写
match4 = re.match(r'my_w+',string1)
match5 = pattern.match(string2,re.I) #匹配字符串,不需分字母大小写
match6 = re.match(r'my_w+',string2,re.I)
print(match1)
print(match2)
print(match3)
print(match4)
print(match5)
print(match6)

运行结果如下:

None

None
None
None
None

可以看到match1和match2的结果不同,我也不太清楚其中缘由(有大佬可以在评论区指点一下)

3. 其他函数

正则表达式(4)_WHJ226的博客-CSDN博客

可以参考本博主的第4篇博文。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/942192.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号