玩转正则表达式
本文中介绍的是主要是 3
个知识点:
-
正则表达式的相关知识
-
Python
的中re
模块,主要是用来处理正则表达式 -
一个利用
re
模块通过正则表达式来进行网页数据的爬取和存储
使用的系统 Python
版本和其他环境分别如下:
-
npython 3.7.5
-
MacOS
-
jupyter notebook
-
re # re 模块
-
requests 2.23.0 # 发送请求
1、正则表达式
1.1 正则表达式及作用
正则表达式的英文是 regular expression
,通常简写为 regex、regexp
或者RE
,属于计算机领域的一个概念。
正则表达式的主要作用是被用来进行文本的检索、替换或者是从一个串中提取出符合我们指定条件的子串,它描述了一种字符串匹配的模式 pattern
。
目前正则表达式已经被集成到了各种文本编辑器和文本处理工具中。
1.2 应用场景
-
验证:比如在网站中进行表单提交时,进行用户名及密码的验证
-
查找:从给定的文本信息中进行快速高效地查找与分析字符串
-
替换:将我们指定格式的文本进行查找,然后将指定的内容进行替换
1.3 网站
在这里介绍几个用来学习和测试正则表达式的网站:
1.菜鸟教程-正则表达式
https://www.runoob.com/regexp/regexp-tutorial.html
2.正则表达式在线测试工具
https://tool.oschina.net/regex/
3.GoRegex.cn
https://goregex.cn/
4.官方re模块学习
https://docs.python.org/zh-cn/3/library/re.html
5.正则表达式30分钟入门教程
https://deerchao.cn/tutorials/regex/regex.htm#mission
1.4 常用字符功能
先介绍常用正则表达式中几种特殊字符的功能:
字符类
字符 | 含义 | 例子 |
---|---|---|
. | 匹配任意一个字符 | ab.可以匹配abc或者abd |
[ ] | 匹配括号中的任意1个字符 | [abcd]可以匹配ab、bc、cd |
- | 在[ ]内表示的字符范围内进行匹配 | [0-9a-fA-F]可以匹配任意一个16进制的数字 |
^ | 位于[ ]括号内的开头,匹配除括号中的字符之外的任意1个字符 | [^xy]匹配xy之外的任意一个字符,比如[^xy]1可以匹配A1、B1但是不能匹配x1、y1 |
很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:810735403
数量限定符
字符 | 含义 | 例子 |
---|---|---|
? | 匹配前面紧跟字符的0次或者1次 | [0-9]?,匹配1、2、3 |
+ | 匹配前面紧跟字符的1次或者多次 | [0-9]+,匹配1、12、123等 |
* | 匹配前面紧跟字符的0次或者多次 | [0-9]*,不匹配或者12、123 |