Python爬虫学习 7 —— 正则表达式
当我们从HTML text中提取信息时,可以发现很多信息都是有规律的,比如我们要获得网页链接url、提取网页中的IP、查询具有某种规律的字符串。正则表达式就是用于匹配具有某种规律的字符串而产生的,换句话说,正则表达式就是记录文本规则的代码。
一、正则表达式介绍
正则表达式:regular expression (RE)
正则表达式是用来简介表达一组字符串的表达式。
用途:表达文本类型的特征、同时查找替换一组字符串、匹配字符串的部分或全部
二、正则表达式语法
常用的元字符:匹配数字、英文字母、空格等字符
字符 | 描述 |
---|---|
. | 匹配除换行符外的任意字符 |
\w | 匹配字母、数字、下划线或汉字,等价于[A-Za-z0-9] |
\s | 匹配任意的空白符(space) |
\d | 匹配数字(digit) |
\b | 匹配字符串的开始或结束 |
^ | 匹配字符串的开始 |
$ | 匹配字符串的结束 |
常用的限定符:指定重复次数
语法 | 描述 |
---|---|
? | 前一字符0次/1次重复 |
+ | 前一字符1次或多次重复 |
* | 前一字符任意次数重复 |
{n} | 扩展前一字符n次 |
{n, } | 扩展前一字符n次或更多次 |
{m, n} | 扩展前一字符m 到 n次 |
常用反义代码:排除某些字符
语法 | 描述 |
---|---|
\W | 匹配非字母、数字、下划线或汉字的字符 |
\S | 匹配任意不是空白符的字符 |
\D | 匹配任意非数字的字符 |
\B | 匹配非单词开否/结尾的位置 |
[^x] | 匹配除了x意外的字符 |
[^abc] | 匹配非a非b非c的单个字符 |
其他常用的操作符
操作符 | 描述 |
---|---|
\ | 转义字符,如\*匹配* ,\\匹配\ |
[] | 字符集,对某个字符给出取值范围 |
| | 左右表达式任意一个 abc|cba 表示abc或cba |
() | 分组标记,内部只能有 | |
贪婪匹配 与 最小匹配:
贪婪:正则表达式尽可能匹配更多的字符,如:用a.b匹配aabab将得到aabab
懒惰:需要尽可能少的匹配,可以在它后面加上一个问号?。如:用a.?b取匹配aabab得到aab
语法 | 描述 |
---|---|
*? | 重复若以此,但尽可能少重复 |
+? | 重复1次或更多次,但尽可能少重复 |
?? | 重复0或1次,但尽可能少重复 |
{n, m}? | 重复n到m次,但尽可能少重复 |
{n, }? | 重复n次以上,但尽可能少重复 |
三、正则表达式运算符的优先级
正则表达式从左到右进行运算,并遵循优先级顺序。不同优先级运算时先高后低。
运算符优先级表
运算符 | 描述 |
---|---|
\ | 转义符 |
(), (?: ), (?=), [] | 圆括号与方括号 |
*, +, ?, {n}, {n, m} | 限定符 |
^, $, \如何元字符、如何字符 | 位置和字符匹配 |
| | 或操作 |
四、正则表达式举例
easy:
RE | strings |
---|---|
python+ | “python”, “pythonn” “pythonnn”… |
py[th]on | “pyton”, “pyhon” |
py[^t]?hon | “pyhon”, “pyahon”, “pybhon”… |
py{:2}thon | “pthon”, “pyhon”, “pyython” |
complex:
RE | strings |
---|---|
2[0-4]\d | 匹配数字字符串200-249 |
^[A-Za-z]+& | 英文字母字符串 |
^-?\d+& | 整数字符串(正负数) |
^[1-9][1-9]*$ | 正整数字符串 |
[\u4e00-\u9fa5] | 匹配中文字符 |
\d{3}-\d{8}|\d{4}-\d{7} | 电话号码:0731-6666666 |
第七篇python爬虫学习笔记完结啦 cheers ??
ps:正则表达式30分钟入门
参考内容:https://www.bilibili.com/video/av9784617/?p=39
Python爬虫学习 7 —— 正则表达式相关推荐
- python爬虫正则表达式实例-python爬虫学习三:python正则表达式
python爬虫学习三:python正则表达式 1.正则表达式基础 a.正则表达式的大致匹配过程: 1.依次拿出表达式和文本中的字符比较 2.如果每一个字符都能匹配,则匹配成功:一旦有匹配不成功的字符 ...
- Python爬虫学习系列教程
大家好哈,我呢最近在学习Python爬虫,感觉非常有意思,真的让生活可以方便很多.学习过程中我把一些学习的笔记总结下来,还记录了一些自己实际写的一些小爬虫,在这里跟大家一同分享,希望对Python爬虫 ...
- Python爬虫学习系列教程-----------爬虫系列 你值的收藏
静觅 » Python爬虫学习系列教程:http://cuiqingcai.com/1052.html 大家好哈,我呢最近在学习Python爬虫,感觉非常有意思,真的让生活可以方便很多.学习过程中我把 ...
- Python 爬虫学习 系列教程
Python爬虫 --- 中高级爬虫学习路线 :https://www.cnblogs.com/Eeyhan/p/14148832.html 看不清图时,可以把图片保存到本地在打开查看... Pyth ...
- Python爬虫学习框架介绍
对于初学者来说,摸索清楚一个领域的知识体系往往比单纯学习某个技术要重要得多,因为技术总会跟随时代发生快速变化,而知识体系往往变化较小,今天我们以自学的角度来了解一下Python爬虫的知识体系吧. 一. ...
- Python爬虫学习总结
Python爬虫学习总结 一.前提 请求网站并提取数据的自动化程序, 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的 ...
- python爬虫学习14
python爬虫学习14 这里写目录标题 python爬虫学习14 get 请求 简单的GET请求 附加信息的GET请求 返回值的类型 抓取网页 抓取二进制数据 添加请求头 get 请求 简单的GET ...
- Python爬虫学习之数据提取(Beautiful Soup)
Python爬虫学习之数据提取Beautiful Soup 前期回顾 概述 解析器 准备工作 实例 节点选择器 方法选择器 find_all find 总结 前期回顾 Python爬虫学习之reque ...
- Python爬虫学习①:
Python爬虫学习①: 前言:本文系根据唐松<Python网络爬虫从入门到实践>书籍进行学习和整理 Python 爬虫的流程分为了三部分 ①:获取网页:给网址发送一个请求,该网址返回整个 ...
最新文章
- Apache JMeter2.13 实战
- 学习web前端难不难
- Java实用教程笔记 类与对象
- 《Android开发从零开始》——16.Service学习(2)
- php获取http头信息,php如何获取http头信息
- .NET语言的编译过程:中间语言(IL)和即时编译器(JIT)
- 清除string内容_python爬取哔哩哔哩网页弹幕内容,并将爬取的内容以五角星的形式显示出来...
- 云麦体脂秤华为体脂秤_华为、小米和有品体脂秤哪个品牌好?三款智能体脂秤横评结果排行...
- 【华为云技术分享】云容器引擎 CCE权限管理实践
- ctfshow-萌新-web13( 利用代码执行漏洞获取网站敏感文件)
- 独立站卖家不可缺的推广引流?
- itex将html转成pdf加水印,Springboot 中集成itextpdf HTML转PDF并添加水印(支持中文)
- javascript 快速入门
- 手把手教你开发微信小程序自定义底部导航栏
- asp企业建站系统 最新推出的 免费下载
- 热血格斗场和冷血格斗场
- 《前端单位和网络地址》随手学习笔记
- 程序“媛”公号,越来越少了,这次推荐俩,轻拍!
- 微信小程序Taro + React开发实践
- R plot图片背景设置为透明_一文学会网络分析——Cooccurrence网络图在R中的实现...
热门文章
- C++小作业-设计一个用于人事管理的People(人员)类
- 实时时钟DS1302-第1季第14部分-朱有鹏-专题视频课程
- 2020年第十七届中国研究生数学建模竞赛B题 -解题思路
- chatGPT的49种应用场景,双AI生成二次元仙女,及各开发语言对接chatGPT参考指南
- ValueError: Expected parameter scale of distribution Normal to satisfy the constraint GreaterThan
- 静态检测工具STATIC以及静态分析的必要性
- 贝尔商道赚钱思维36道第25道:流传千年的赚钱秘密
- UC伯克利提出AIGC图像编辑新利器InstructPix2Pix,AI模型P图更加精细
- python读xml文件生成.h头文件_PYTHON读写xml文件的方法
- 汽车之家运维团队倾力打造的配置管理系统AutoCMS