首发于 Python基础学习笔记
一文教你深入理解正则表达式(基础篇十五)

一文教你深入理解正则表达式(基础篇十五)

正则表达式

1 正则表达式介绍

正则表达式概念:

正则表达式就是记录文本规则的代码

正则表达式的样子:

0\d{2}-\d{8} 这个就是一个正则表达式,表达的意思是匹配的是座机号码

正则表达式的特点:

2 re模块介绍

<1> re模块的使用过程

在Python中需要通过正则表达式对字符串进行匹配的时候,可以使用一个模块,名字为re

<2> re模块示例

运行结果为:

3 匹配单个字符

正则表达式的单字符匹配

示例1:.

运行结果:

示例2:[]

运行结果:

示例3:\d

运行结果:

示例4:\D

运行结果:

示例5:\s

运行结果:

示例6:\S

运行结果:

示例7:\w

执行结果:

示例8:\W

执行结果:

4 匹配多个字符

匹配多个字符的相关格式

示例1:*

需求:匹配出一个字符串第一个字母为大小字符,后面都是小写字母并且这些小写字母可 有可无

运行结果:

示例2:+

需求:匹配一个字符串,第一个字符是t,最后一个字符串是o,中间至少有一个字符

运行结果:

示例3:?

需求:匹配出这样的数据,但是https 这个s可能有,也可能是http 这个s没有

运行结果:

示例4:{m}、{m,n}

需求:匹配出,8到20位的密码,可以是大小写英文字母、数字、下划线

运行结果:

5 匹配开头和结尾

匹配开头和结尾的正则表达式

示例1:^

需求:匹配以数字开头的数据

运行结果:

示例2:$

需求: 匹配以数字结尾的数据

运行结果:

示例3:^ 和 $

需求: 匹配以数字开头中间内容不管以数字结尾

运行结果:

示例4: 除了指定字符以外都匹配

[^指定字符]: 表示除了指定字符都匹配

需求: 第一个字符除了aeiou的字符都匹配

执行结果

6 匹配分组

匹配分组相关正则表达式

示例1:|

需求:在列表中["apple", "banana", "orange", "pear"],匹配apple和pear

执行结果:

示例2:( )

需求:匹配出163、126、qq等邮箱

执行结果:

需求: 匹配qq:10567这样的数据,提取出来qq文字和qq号码

执行结果:

示例3:\num

需求:匹配出hh

运行结果:

需求:匹配出www.baidu.cn

运行结果:

示例4:(?P) (?P=name)

需求:匹配出www.baidu.cn

运行结果:

7 re模块的高级用法

<1> search

需求:匹配出水果的个数

运行结果:

<2> 查找多个字符findall

需求:匹配出多种水果的个数

运行结果:

<3> sub 将匹配到的数据进行替换

需求:将匹配到的评论数改成22

运行结果:

需求:将匹配到的阅读数加1

运行结果:

<4> split 根据匹配进行切割字符串,并返回一个列表

需求:切割字符串"貂蝉,杨玉环:西施,王昭君"

运行结果:

8 贪婪和非贪婪

Python里数量词默认是贪婪的(在少数语言里也可能是默认非贪婪),总是尝试匹配尽可能多的字符;

非贪婪则相反,总是尝试匹配尽可能少的字符。

在"*","?","+","{m,n}"后面加上?,使贪婪变成非贪婪。

正则表达式模式中使用到通配字,那它在从左到右的顺序求值时,会尽量“抓取”满足匹配最长字符串,在我们上面的例子里面,“.+”会从字符串的启始处抓取满足模式的最长字符,其中包括我们想得到的第一个整型字段的中的大部分,“\d+”只需一位字符就可以匹配,所以它匹配了数字“4”,而“.+”则匹配了从字符串起始到这个第一位数字4之前的所有字符。

解决方式:非贪婪操作符“?”,这个操作符可以用在"*","+","?"的后面,这样?前面的正则表达式不能匹配?后面正则表达式的数据

9 r的作用

说明

Python中字符串前面加上 r 表示原生字符串,数据里面的反斜杠不需要进行转义,针对的只是反斜杠

Python里的原生字符串很好地解决了这个问题,有了原生字符串,你再也不用担心是不是漏写了反斜杠,写出来的表达式也更直观。

建议: 如果使用使用正则表达式匹配数据可以都加上r,要注意r针对的只是反斜杠起作用,不需要对其进行转义

聚圣源粉丝商标起名公司测名称起名贝因美积分网站勇于担当加盟店可靠吗泰安起名公司电话夫妻奴起名字2021免费八字起名周易起名字女孩李茶叶注册标志起名大唐合盛瓷砖女孩名字起名字测试打分独占病美人师尊迫在眉睫的近义词免费婴儿起名字抗战之中国远征军适合起女生名字的字元宵节古诗词100首毛起名字正月廿八五大银行重生之独宠无二取名五行字典起名字典一统日娱适合起名常用字大全有哪些diy巧克力店保安服务公司起什么名字你我贷可靠吗好的故事写作背景视频修复软件淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化