Python学习的自我理解和想法(23)

学的是b站的课程(麦叔),跟老师写程序,不是自创的代码!

今天是学Python的第23天,学的内容是正则表达式。开学了,时间不多,写得不多,见谅。

目录

1.七个境界

level 1 固定的字符串

level 2 某一类字符串

level 3 重复某一类字符

level 4 组合level2

level 5 多种情况

level 6 限定位置

level 7 内部约束

2.写正则表达式的套路

(1).确定模式包含几个子模式

(2).各个部分的字符分类是什么

(3).各个部分如何重复

(4).检查是否有外部位置限制

(5).检查是否有内部制约关系

3.正则表达式的语法大全

(1).字符类别表达

(2). 字符重复的次数

(3). 组合模式

(4). 位置

(5). 分组

(6). 标记

(7). 特殊字符

(8). 替换

总结

1.七个境界

level 1 固定的字符串

语法:找到是否含有一串字符串.

解析:r表示的是不进行转移,保留原字符串.

level 2 某一类字符串

语法:找到是否含有某一类字符串,如\d表示数字,\D表示不是数字,\w表示非标点符号的东西,[*****] 可以匹配符合标准的任意字符.

level 3 重复某一类字符

语法:+表示1-多个,?表示0个或者1个, * 表示0个或多个,{a,b}表示从范围在a到b之间的都行,a为0可以不写.

level 4 组合level2

用处:匹配特殊的数字,如座机电话,手机号码.

level 5 多种情况

用处:匹配电话号码,不限于是手机还是座机.

语法:| 表示或者,两者都行.

level 6 限定位置

用处:例如只要最前面的电话号码.

语法:^表示句子开头,$表示结尾

level 7 内部约束

用处:比如你要匹配个AA类型的数据.

语法:返回值是一个列表,列表里面又是一个元组,因为代码中有两个括号,括号将我们的结果分成了两个部分,(\1)使得第一个括号中匹配的内容不再单独匹配.

2.写正则表达式的套路

以包含分机号码的座机号码为例,比如说0571-88776655-9527.

(1).确定模式包含几个子模式

答案:3个,两两之间用-连接.

(2).各个部分的字符分类是什么

答案:这三个子模式都是数字类型,可以用\d,现在可以写出模式为:\d-\d-\d.

(3).各个部分如何重复

答案:第一个子模式重复34次,第二个子模式重复78次,第三个子模式重复3~4次.

加上限制次数后,模式成为: \d(3,4)-\d(7,8)-\d(3,4).倒有些座机没有分机号,所以我们用或运算符让其支持两者:

\d(3,4)-\d(7,8)-\d(3,4) | \d(3,4)-\d(7,8)

(4).检查是否有外部位置限制答案:没有

(5).检查是否有内部制约关系

答案:没有

3.正则表达式的语法大全

以下图片全是来自于视频(@麦叔编程 硬核Python进阶篇 - 一小时掌握正则表达式)的截图,如有侵权请联系作者删除,谢谢.

(1).字符类别表达

表达某一类字符,比如数字,字母,3~9之间的任意和数字等.

(2). 字符重复的次数

也叫做量词,比如身份证是数字重复15或18次.

(3). 组合模式

多个简单的模式组合在一起,可以使拼接,也可以是二者选其一.

(4). 位置

鉴定模式出现的位置,比如行首,行尾或者在特定字符之后等.

(5). 分组

把一个正则表达式分成几个部分,这样可以重复某个分组,或者指定两个分组必须相同等额外的要求.

(6). 标记

语法:flags=re.XX,XX表示标记语言.

(7). 特殊字符

匹配特殊的字符

(8). 替换

总结

这是我今天学Python的自我想法和对其的理解,有不对的地方请同志们多多包涵,谢谢观看!

相关推荐
在屏幕前出油5 小时前
二、Python面向对象编程基础——理解self
开发语言·python
阿方索6 小时前
python文件与数据格式化
开发语言·python
信创天地8 小时前
信创国产化数据库的厂商有哪些?分别用在哪个领域?
数据库·python·网络安全·系统架构·系统安全·运维开发
不哦罗密经8 小时前
python相关
服务器·前端·python
happybasic8 小时前
python字典中字段重复性的分析~~
开发语言·python
山海青风8 小时前
人工智能基础与应用 - 数据处理、建模与预测流程 6 模型训练
人工智能·python·机器学习
l木本I8 小时前
Reinforcement Learning for VLA(强化学习+VLA)
c++·人工智能·python·机器学习·机器人
颖风船8 小时前
锂电池SOC估计的一种算法(改进无迹卡尔曼滤波)
python·算法·信号处理
94620164zwb58 小时前
应用设置模块 Cordova 与 OpenHarmony 混合开发实战
python
551只玄猫9 小时前
KNN算法基础 机器学习基础1 python人工智能
人工智能·python·算法·机器学习·机器学习算法·knn·knn算法