python爬虫基础知识(二)--正则表达式
2017-12-11 22:34
1066 查看
regular expression :描述字符串排列的一套规则,通过这套规则,我们可以过滤掉不需要的信息,从而提取出我们需要的信息,在爬虫中,我们如果想要从网页中获取我们想要的信息就需要构造相应的正则表达式结合python的方法进行获取。
1.原子
原子是正则表达式中最基本的单位,每个正则表达式至少包含一个原子,原子类型:
1)普通字符
2)非打印字符作为原子
\n—>换行符
\t–>制表符
3)通用字符
4)原子表
原子表的意思就是可以定义一组平等的原子,在匹配的时候取该原子表的任意一个原子进行匹配,原子表用[]表示,比如[cvb]oo就是在cvb中任意选一个元素,coo,voo,boo都是正确的匹配,类似的[^cvb]oo表示的不包括cvb中的任意一个。
2.元字符
元字符就是正则表达式里面表示特殊含义的字符,比如重复n次前面的元素,具体的表可以参照正则表达式速查表
3.模式修正
模式修正的含义的就是实现一些匹配结果的调整,比如不区分大小写(I),多行匹配(M)等
4.贪婪模式和懒惰模式
这两个名词的含义一看都能明白,贪婪的意思就是尽可能多的匹配,懒惰的模式就是只匹配一个,实现这种简单的贪婪模式比如正则表达式”p.*y”,这就是贪婪模式。
正则表达式常用函数
1)re.match(pattern,string,flag),从源字符串开始位置开始匹配
2)re.serach(),扫描整个字符串
3)全局匹配函数
全局匹配函数就是要匹配所有有可以匹配的字符,所有的结果都要提出来
思路:
使用re.compile()对正则表达式预编译–>使用findall()根据正则表达式找出所有结果。
4)re.sub(pattern,rep,string,max)根据pattern,从string中找出符合条件的结果,替换为req,最多可替换max次,默认为全部替换。
—-end————–
1.原子
原子是正则表达式中最基本的单位,每个正则表达式至少包含一个原子,原子类型:
1)普通字符
import re pattern="hello" string="abdsafdasdhelloAsad" result=re.search(pattern,string) print(result)
2)非打印字符作为原子
\n—>换行符
\t–>制表符
import re pattern="\n" string='''abdsafdasdhelloAsa dadassd''' result=re.search(pattern,string) print(result)
3)通用字符
符号 | 含义 |
---|---|
\w | 匹配任意一个字母,数字或下划线 |
\W | 与/w相反 |
\d | 匹配任意一个十进制数 |
\D | 与/d相反 |
\s | 匹配一个任意空白字符 |
\S | 与/s相反 |
import re pattern="\wsa" string='''abdsafdasahelloAsa dadassd''' result=re.search(pattern,string) print(result) 输出: <_sre.SRE_Match object; span=(2, 5), match='dsa'>
4)原子表
原子表的意思就是可以定义一组平等的原子,在匹配的时候取该原子表的任意一个原子进行匹配,原子表用[]表示,比如[cvb]oo就是在cvb中任意选一个元素,coo,voo,boo都是正确的匹配,类似的[^cvb]oo表示的不包括cvb中的任意一个。
import re pattern="[abc]s" string='''abdsafdasahelloAsa dadassd''' result=re.search(pattern,string) print(result) result: <_sre.SRE_Match object; span=(7, 9), match='as'>
2.元字符
元字符就是正则表达式里面表示特殊含义的字符,比如重复n次前面的元素,具体的表可以参照正则表达式速查表
import re pattern1="^ab" pattern2="sd$" string='''abdsafdasahelloAsa dadassd''' result1=re.search(pattern1,string) result2=re.search(pattern2,string) print(result1) print(result2)
3.模式修正
模式修正的含义的就是实现一些匹配结果的调整,比如不区分大小写(I),多行匹配(M)等
import re pattern2="sd$" string='''abdsafdasahelloAsa dadasSd''' result2=re.search(pattern2,string,re.I) print(result2) 结果: <_sre.SRE_Match object; span=(31, 33), match='Sd'>
4.贪婪模式和懒惰模式
这两个名词的含义一看都能明白,贪婪的意思就是尽可能多的匹配,懒惰的模式就是只匹配一个,实现这种简单的贪婪模式比如正则表达式”p.*y”,这就是贪婪模式。
正则表达式常用函数
1)re.match(pattern,string,flag),从源字符串开始位置开始匹配
2)re.serach(),扫描整个字符串
3)全局匹配函数
全局匹配函数就是要匹配所有有可以匹配的字符,所有的结果都要提出来
思路:
使用re.compile()对正则表达式预编译–>使用findall()根据正则表达式找出所有结果。
import re string="abcdfsdfdabdfsdfdsvsfd" pattern=re.compile(".b.") result=pattern.findall(string) print(result) 结果: ['abc', 'abd']
4)re.sub(pattern,rep,string,max)根据pattern,从string中找出符合条件的结果,替换为req,最多可替换max次,默认为全部替换。
—-end————–
相关文章推荐
- python爬虫入门(1) 基础知识 ; 正则表达式 Re 模块
- python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。
- 零基础写python爬虫之神器正则表达式
- 1.python爬虫基础——正则表达式
- 第01阶段-基础入门-02-Python 爬虫基础-21节=====12.认识正则表达式
- python3爬虫之入门基础和正则表达式
- python爬虫之正则表达式基础
- 正则表达式基础——以Python爬虫为实例
- Python零基础入门二十四之正则表达式知识补充
- Python开发基础-Day15正则表达式爬虫应用,configparser模块和subprocess模块
- Python爬虫基础-5(正则表达式)
- Python基础知识:re正则表达式
- python基础之正则表达式爬虫应用,configparser模块和subprocess模块
- 关于python的基础知识11--正则表达式
- Python爬虫知识(2)——正则表达式复习
- 零基础写python爬虫之神器正则表达式
- Python基础学习——正则表达式与第一个爬虫(requests)
- Python正则表达式的基础知识回顾
- python3爬虫之入门基础和正则表达式
- python爬虫由浅入深8---正则表达式及Re库的基础与使用