关于爬虫(入门)
2018/09/18
正则表达式(一种进行数据筛选的表达式)
-
原子(正则表达式最基本组成单位)
- 普通字符
字符串、非打印字符\n、通用字符、原子表。 - 导入正则表达式:import re
eg:result=re.search(‘yue’,‘http://www.baidu.com’) - 通用字符(通配符,可以匹配一系列东西):
\w:匹配任意一个字母数字下划线
\d:匹配任意一个十进制数
\s:匹配任意一个空白字符
\W:匹配\w相反东西(同理\D、\S)
eg:
result=re.search(’\w\dpython\w’,‘fjfj22pythond’)
print(result)
<re.Match object; span=(4, 13), match=‘22pythond’> - 普通字符
-
原子表
eg:result=re.search(‘pyth[own]n’,‘fjfj22pythwnd’)
#任意o、w、n其一即可
print(result)> print(result)
<re.Match object; span=(6, 12), match=‘pythwn’> -
元字符(正则表达式中特殊含义的字符)
^:匹配开始位置
$:匹配结束位置
*:匹配大于0次、1次、多次前面的原子
?:匹配0次、1次前面的原子(也是懒惰模式)
+:匹配大于0次前面的原子
{}:里面加数字,表示前面的原子共出现多少次(包括前面的数);里面数字n加,表示至少出现n次;数字n1+,+数字n2,至少n1至多n2。
|:模式选择符,或
():用于提取内容
.:匹配除了换行符之外任意字符
-
模式修正符(不改变正则表达式的前提下,通过模式修正改变正则表达式的含义,从而实现一些匹配结果的调整等功能)
- I:忽略正则表达式大小写
M:多行匹配
L:本地化识别匹配(这是个啥?)
U:根据unicode字符解析我们的字符
S:让`.``也匹配换行符
eg:
result=re.search(‘python’,‘fjfj22Pythond’,re.I)
print(result)> print(result)
<re.Match object; span=(6, 12), match=‘Python’> - I:忽略正则表达式大小写
-
贪婪模式(try more)、懒惰模式(try less)
result=re.search(‘p.n’,‘fjfj22Pythondy’,re.I)
#贪婪模式,结果Pythondy
result=re.search('p.?n’,‘fjfj22Pythondy’,re.I)
#懒惰模式,结果Py
- 正则表达式函数
- re.match():从头搜索,头不匹配就没了
result=re.search(‘p.*?n’,‘fjfj22Pythondy’,re.I)
#结果none- re.search():任意位置搜索,但只出一个结果
- 全局方式
eg:
result=re.compile(‘p.*?y’).findall(‘dhpjsfhydjpfy’)
print(result)
[‘pjsfhy’, ‘pfy’]
本文介绍了正则表达式的基础知识,包括正则表达式的组成部分如原子、通用字符、元字符等,以及如何使用Python的re模块进行数据筛选。通过实例演示了如何应用正则表达式进行模式匹配。
3818

被折叠的 条评论
为什么被折叠?



