PYTHON网络爬虫与信息提取[正则表达式的使用](单元七)
正则表达式由字符和操作符构成
. 表示任何单个字符
[]字符集,对单个字符给出取值范围 [abc]或者关系 [a-z]表示
[^abc]表示非这里面的东西 非字符集
* 表示星号之前的字符出现0次或者无限次扩展
+ 表示星号之前的字符出现一次或者无限次扩展
? 表示出现0次或1扩展
| 表示左右表达式人取其一 abc|def
---------------------------------------------------------------------
{m} 扩展前一个字符m次 ab{2}c abbc
{m,n}扩展前一个字符m-n 次 ab{1,2}c 表示 abc abbc
{:3} 零到三次
^ 匹配字符串开头: ^abc 表示abc且在一个字符串的开头
$ 匹配字符串的结尾 abc$ 表示bac切abc在一个字符串的结尾
()分组标记 内部只能使用 |
\d 等价于[0-9]
\w 等价于字符[A-Za-z0-9]
----------------------------------------------------------------------
经典正则表达式
^[A-Za-z]+$ 由26个字母组成的表达式
^[A-Za-z0-9]+$ 由字母与数字构成的字符串
^-?\d+$ 匹配任何整数
^[1-9]*[0-9][0-9]*$ 表示正整数的字符串
[1-9]\d{5} 6位邮政编码的正则表达式
[\u4e00-\u9fa5] 匹配中文字符
\d{3}-\d{8}|\d{4}-\d{7} 匹配国内电话号码
\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}. 匹配ip地址
re.search() 在一个字符串中搜索匹配正则表达式的第一个位置,返回metch对象
re.match() 在一个字符串的开始位置起匹配正则表达式,返回match对象
re.findall() 搜索字符串,以列表形式返回所有能匹配的字符串
re.split() 将一个字符串按照正则表达式的匹配结果进行分割,返回一个列表
re.finditer() 搜索字符串,返回一个匹配结果的爹地啊类型,每个迭代元素是match象
re.sub() 替换所有匹配的字符串,返回一个字符串
详细使用说明
re.search(pattern,string,flags=0)
findall 函数参数和search 一样
finditer 同上
pattern 正则表达式
string 原始需要被匹配的字符串
flags 控制查找的标记
标记如下
re.I 忽略大小写
re.M 正则表达式的^操作符能够匹配给定字符串每一行的开始部分
re.S re.DOTALL 正则表达式的.匹配所有的字符 //默认匹配除换行符之外的所有字符
re.split(pattern,string,maxsplit=0,flags=0)
maxsplit 最大分割数,剩余部分作为整体显示出来 (匹配的部分去掉)
re.sub(pattern,repl,string,count=0,flags=0)
repl 替换原字符串的字符串 ,count 最大替换词数
re库的等价用法
rst=re.search(...) 一次性用法
re.compile(pattern,flags=0)
pat =re.compile('')
// pat 成为pattern 对象 可以多次使用
pat.search()
Match 对象类型
if match:
attribute:
.string 待匹配文本
.re 使用的pattern
.pos 匹配开始的位置
.enpos 匹配结束的位置
.group(0) 获得匹配后的字符串
group方法的其他用法如下
>>> m = re.match(r"(\w+) (\w+)", "Isaac Newton, physicist")
>>> m.group(0) # The entire match
'Isaac Newton'
>>> m.group(1) # The first parenthesized subgroup.
'Isaac'
>>> m.group(2) # The second parenthesized subgroup.
'Newton'
>>> m.group(1, 2) # Multiple arguments give us a tuple.
('Isaac', 'Newton')
.start() 匹配字符串在原始字符串的开始位置
.end() 匹配字符串在原始字符串的结束位置
.span 返回(.start(),.end()) //tuple
贪婪匹配和最小匹配
match=re.saerch(r'PY.*N','PYANBNCNDN')
match.group(0)
匹配长短不同时
默认采用贪婪匹配的方式,即找到最长的符合条件的最长子串
match=re.saerch(r'PY.*?N','PYANBNCNDN')
match.group(0)
*后面加一个?即匹配符合条件的最小的匹配
最小匹配操作符(有操作符可以匹配不同长度时)
*?
+?
??
{m,n}?
正则表达式还是要反斜杠注释的 \\
r'\"view_price\"\:\"[\d\.]*\"'
.":都要注释
{0:^10}
0是format第0个元素,‘排名’
:是引导符号
^是居中对齐
10是槽的设定输出宽度
其余类似
PYTHON网络爬虫与信息提取[正则表达式的使用](单元七)的更多相关文章
- PYTHON网络爬虫与信息提取[scrapy框架应用](单元十、十一)
scrapy 常用命令 startproject 创建一个新的工程 scrapy startproject <name>[dir] genspider 创建一个爬虫 ...
- Python网络爬虫与信息提取
1.Requests库入门 Requests安装 用管理员身份打开命令提示符: pip install requests 测试:打开IDLE: >>> import requests ...
- 第3次作业-MOOC学习笔记:Python网络爬虫与信息提取
1.注册中国大学MOOC 2.选择北京理工大学嵩天老师的<Python网络爬虫与信息提取>MOOC课程 3.学习完成第0周至第4周的课程内容,并完成各周作业 4.提供图片或网站显示的学习进 ...
- 第三次作业-MOOC学习笔记:Python网络爬虫与信息提取
1.注册中国大学MOOC 2.选择北京理工大学嵩天老师的<Python网络爬虫与信息提取>MOOC课程 3.学习完成第0周至第4周的课程内容,并完成各周作业 第一周 Requests库的爬 ...
- 第三次作业-Python网络爬虫与信息提取
1.注册中国大学MOOC 2.选择北京理工大学嵩天老师的<Python网络爬虫与信息提取>MOOC课程 3.学习完成第0周至第4周的课程内容,并完成各周作业 过程. 5.写一篇不少于100 ...
- Python网络爬虫与信息提取笔记
直接复制粘贴笔记发现有问题 文档下载地址//download.csdn.net/download/hide_on_rush/12266493 掌握定向网络数据爬取和网页解析的基本能力常用的 Pytho ...
- 【学习笔记】PYTHON网络爬虫与信息提取(北理工 嵩天)
学习目的:掌握定向网络数据爬取和网页解析的基本能力the Website is the API- 1 python ide 文本ide:IDLE,Sublime Text集成ide:Pychar ...
- Python网络爬虫与信息提取(一)
学习 北京理工大学 嵩天 课程笔记 课程体系结构: 1.Requests框架:自动爬取HTML页面与自动网络请求提交 2.robots.txt:网络爬虫排除标准 3.BeautifulSoup框架:解 ...
- Python网络爬虫与信息提取(三)—— Re模块
regular expression / regex / RE 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配.Python 自1.5版本起增加了re 模块,它提供 ...
随机推荐
- VC控件DateTimePicker使用方法
出自http://www.cnblogs.com/52yixin/articles/2111299.html 使用DateTimePicker控件一般是获 取其时间替代手工输入带来的不便,而DateT ...
- 网络爬虫技术Jsoup
Jsoup介绍:Jsoup 是一个 Java 的开源HTML解析器,可直接解析某个URL地址.HTML文本内容 Jsoup主要有以下功能: 1. 从一个URL,文件或字符串中解析HTML 2. 使用D ...
- 基于宜搭的《T恤尺码收集》应用搭建
简介: 在阿里,T恤是程序员必不可少的元素.每逢公司或者BU(部门)的重大节庆日,比如双11 .年会.新BU成立仪式.大型活动等,都会给员工定制发放统一的T恤或者POLO衫服装.而我们每次发放T恤之前 ...
- Data Lake Analytics: 读/写PolarDB的数据
Data Lake Analytics 作为云上数据处理的枢纽,最近加入了对于PolarDB的支持, PolarDB 是阿里云自研的下一代关系型分布式云原生数据库,100%兼容MySQL,存储容量最高 ...
- 1008-Redo
关于flag,都立下了 T1 考试的时候就觉得是贪心,但是不会反悔emm…… 于是正解就是一个堆优化可反悔的贪心=.= 每次找前面最小的,于是是小根堆. 我们在交易的时候发现后面的一个可以更优. 于是 ...
- centos7 盘符变动 绑定槽位
服务器下的硬盘主有机械硬盘.固态硬盘以及raid阵列,通常内核分配盘符的顺序是/dev/sda./dev/sdb… ….在系统启动过程中,内核会按照扫描到硬盘的顺序分配盘符(先分配直通的,再分配阵列) ...
- IO流12 --- 转换流InputStreamReader --- 技术搬运工(尚硅谷)
InputStreamReader 将字节输入流转换为字符输入流 @Test public void test1(){ InputStreamReader isr = null; try { //字节 ...
- Python爬虫工程师必学——App数据抓取实战
Python爬虫工程师必学 App数据抓取实战 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问题,大 ...
- Tensorflow通过CNN实现MINST数据分类
import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data mnist = input_dat ...
- Odoo 中的widget
many2many_tags one2many_list selection progressbar selection statusbar handle monetary mail_thread s ...