python学习第十四节(正则)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习第十四节(正则)相关的知识,希望对你有一定的参考价值。

python2和python3都有两种字符串类型
str
bytes

re模块
find一类的函数都是精确查找。
字符串是模糊匹配

findall(pattern,string,flags)

技术分享

replace函数
‘hello python‘.replace(‘p‘,‘P‘)
‘hello Python‘

a=‘sadfadf232wwewfr323rwef34534trwef‘
import re
w=re.findall(‘\\d‘,‘sadfadf232wwewfr323rwef34534trwef‘)
w=re.findall(‘\\d+‘,‘sadfadf232wwewfr323rwef34534trwef‘)
print(w)

re.findall 将所有符合规则的结果保存到一个列表里。
re.findall(pattern,string)
key: 元字符 (有特殊功能的字符)
通配符:
. 点 能匹配任何一个除换行符以外的符号,也就是说点能代表任何符号。
* [0,+00] 0到无穷次的范围
+ [1,+00] 1到无穷次的范围
? [0,1] 0个或1个
{} {n,m} 可以写{3,5} 3到5个 也可以写{3} 3个 ,也可以写{0,} 无穷次的意思

技术分享

字符集:
[] 用法,re.findall("a[bd]c","safasdfaefsdf") 里面[bd]是或者的关系,或者是b或者是d 都显示出来
如果[]中加了标点符号,标点符号和字母是同级别的 过滤的是a,b等内容。
[] 中如果加上通配符,那么并没有通配符的意义,只是匹配相关符号内容的东西
[0-9] 只是匹配一个数字,如果需要找4位的数字,[0-9]{4}
[] 字符集中 有特殊意义的字符为: - ^ \\

^ 开始匹配
$ 结尾匹配

():分组

技术分享

(ad) 匹配这个组
(ad)+yuan 图中下面这个匹配的是蓝色内容,但是分组优先显示()分组内的内容,所以结果是ad

技术分享

如上图所示,可以取消()的优先级,将蓝色内容打印出来,?:这个语法就是取消优先级,不光显示分组,还可以显示其他内容。

技术分享

如上图,该打印出的内容为3,因为数字很多,匹配到的是yuan,但是显示分组内容3

技术分享

取消分组特性

技术分享

 

如上图,|是或的意思
如果或后面没有匹配到则显示空。

技术分享

如上图,上面这种可以直接匹配出网址。

\\ 转译,能将字母转译成特殊意义,也能将特殊意义的字符转移成普通字符
\\d 代表0-9的任意一个字符
\\w 代表任意数字或字母的字符

技术分享

\\. 点变成普通符号

技术分享

复杂一点的

技术分享

 技术分享

\\s 取出来有个空格

技术分享

search方法
找到一个对应的就不再向后匹配

技术分享

match方法
只匹配开头,如果开头没有则返回None

技术分享

作业

技术分享

分组给组起名字,根据名字来取内容

技术分享

字符集中可以用的特殊符号

技术分享

|管道符

技术分享

技术分享

 































以上是关于python学习第十四节(正则)的主要内容,如果未能解决你的问题,请参考以下文章

学习Linux第十四节课

学习笔记第十四节课

第十四节,OpenCV学习图像的阈值分割

第四百一十四节,python常用算法学习

零基础入门学习java第十四节:Java对象的克隆

大白话5分钟带你走进人工智能-第十四节过拟合解决手段L1和L2正则