Python网络爬虫之正则表达式精讲

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
结果:['py']
贪婪模式比较模糊,懒惰模式比较精准。
正则表达式函数
正则表达式函数
在Python中需要通过正则表达式对字符串进行匹配的时候,可以导入一 个库(模块),名字为re,它提供了
对正则表达式操作所需的方法。 方法
说明
re.match(pattern,string flags)
从字符串的开始匹配一个匹配对象, 例如匹配第一个 单词
运行结果: <re.Match object; span=(10, 18), match='1205yuan'> 拓展: pat=“\d\d\d\d[^xyz]uan” #原子表 ,^表示非
元字符
元字符
所谓的元字符,就是正则表达式中具有一些特殊含义的字符,比如重复N次前面的字符等。常见的元字符包括: . 除换行符外任意一个字符串 ^ 不在原子表里,表示开始位置,在原子表里表示非 $ 结束位置 * 前面的字符出现0\1\多次 ? 前面的字符出现0\1次 + 前面的字符出现1\多次 {n} 前面的字符恰好出现n次 {n,} 前面的字符至少出现n次 {n,m} 前面的字符至少出现n次,至多m次 | 模式选择符 () 模式单元
正则表达式精讲
主讲老师:XXX
1
什么是正则表达式
2
原子
3
元字符
4
模式修正符
5
贪婪模式与懒惰模式
6
正则表达式函数
目录
正则表达式介绍
世界上信息非常多,而我们关注的信息有限。假如我们希望只提取出关注的数据,此时可以通过一些表达式 进行提取,正则表达式就是其中一种进行数据筛选的表达式。
正则表达式(Regular Expression),此处的“Regular”即是“规则”、“规律”的意思,Regular Exp ression即“描述某种规则的表达式”,因此它又可称为正规表示式、正规表示法、正规表达式、规则表达式、 常规表示法等,在代码中常常被简写为regex、regexp或RE。正则表达式使用某些单个字符串,来描述或匹配 某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索或替换那些符合某个模式的文本。
re.search(pattern,string flags)
在字符串中查找匹配的对象,找到第一个后就返回,如 果没有找到就返回None
re.sub(pattern,repl,string count) re.split(r',',text)
re.findall(pattern,string flags)
通用字符作为原子
原子
原子表
将几个原子组成一个表,通常用[]来表示,如:[xyz],表示从x,y,z三个字符中任意选择一个。 import re s="Thisbookis1205yuanqian" pat=“\d\d\d\d[xyz]uan” #原子表 rst=re.search(pat,s) print(rst)
贪wenku.baidu.com模式与懒惰模式
贪婪模式与懒惰模式
贪婪模式的核心点就是尽可能多的匹配,而懒惰模式的核心点就是尽可能少的匹配。
示范一: import re s="pythony" pat="p.*y" #默认为贪婪模式 rst=re.findall(pat,s) print(rst)
结果:['pythony']
示范二: import re s="pythony" pat=“p.*?y” #加上?懒惰模式 rst=re.findall(pat,s) print(rst)
模式修正符
所谓的模式修正符,即可以在不改变正则表达式的情况下,通过模式修正符改变正则表达式的含义,从而实 现一些匹配结果的调整等功能。
I 匹配时忽略大小写 M 多行匹配 L 本地化识别匹配 U 根据Unicode匹配 S 让.匹配包括换行符 import re s="""ILovefootball Doyou love football""" pat="love" rst=re.findall(pat,s,re.I) print(rst)
原子
原子是正则表达式中最基本的组成单位,每个正则表达式中至少要包含一个原子。常见的原子类 型有。 普通字符作为原子 非打印字符作为原子 通用字符作为原子 原子表
1.有如下字符串:
原子
普通字符作为原子
s=“Ilovefootball”
2.要从中提取“love”子字符串,则可以定义一个正则表达式:pat=“love”
3.使用正则表达式的re.search(正则,字符串)函数进行匹配,示例如下:
import re
s=“Ilovefootball”
pat=“love” #普通字符作为原子
rst=re.search(pat,s)
print(rst)
运行结果: <re.Match object; span=(1, 5), match='love'>
元字符
示范: import re s="Thisbookis1205yuanqian" pat="(\w*book)" rst=re.search(pat,s) print(rst)
元字符
运行结果: <re.Match object; span=(0, 8), match='Thisbook'>
模式修正符
原子
\w 匹配字符、数字、下划线 \W 匹配除字母、数字、下划线以外的字符 \d 匹配十进制数字 \D 匹配除十进制数字以外的字符 \s 匹配空白字符 \S 匹配除空白字符以外的字符 import re s="Thisbookis1205yuan" pat=“\d\d” #通用字符作为原子 rst=re.search(pat,s) print(rst) 运行结果: <re.Match object; span=(10, 12), match='12'>
原子
常见的非打印字符有: \n换行符 \t制表符 import re s="""I love football do you love football""" pat=“\n“ #非打印字符作为原子 rst=re.search(pat,s) print(rst)
非打印字符作为原子
输出结果: <re.Match object; span=(15, 16), match='\n'>
相关文档
最新文档