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

REstrings
python+“python”, “pythonn” “pythonnn”…
py[th]on“pyton”, “pyhon”
py[^t]?hon“pyhon”, “pyahon”, “pybhon”…
py{:2}thon“pthon”, “pyhon”, “pyython”

complex

REstrings
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

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值