python-----正则--re模块

一 发送消息和正则表达式

1 . 正则介绍

Python 中的正则,本质上是嵌入在Python中的一种微小的、高度专业化的编程语言,可通过 re 这个内置模块获得。
正则表达式模式几乎和 shell 中的一样,更接近 grep -P 的效果,因为 Python 中的 re 模块提供的是类似 Perl 语言中的正则表达式。
正则表达式模式会被编译成一系列字节码,然后由用 C 编写的匹配引擎执行。

2. 陷阱

友情提示:

正则表达式语言相对较小且受限制,因此并非所有可能的字符串处理任务都可以使用正则表达式完成。

还有一些任务 可以 用正则表达式完成,但表达式变得非常复杂。 在这些情况下,你最好编写 Python 代码来进行处理;虽然 Python 代码比精心设计的正则表达式慢,但它也可能更容易理解。

3. 特殊的字符

在 Python 中有一些特殊的字符,在正则表达式模式中的作用和 shell 和 grep -P 时候有一些细微的差别
在这里插入图片描述

二、 re 模块的方法

其实,前面在 shell 中我们已经学习正则,这里我们主要学习的是 Python 中如何使用正则的,就是 re 模块中都有哪些方法。
接下来我们就学习几个常间的方法

1 常用方法

match() 就看开头有没有

只在整个字符串的起始位置进行匹配.匹配的成功的结果是一段普通的信息,所以在python中需要用group() 来获取这段信息

示例字符串
r.group() 获取查看匹配成功的结果
在这里插入图片描述

search() 只查到第一个匹配的

从整个字符串的开头找到最后,当第一个匹配成功后,就不再继续匹配。
已a开始匹配,一旦满足“a\w+"的条件就停止。
在这里插入图片描述
findall() 查到所有**

搜索整个字符串,找到所有匹配成功的字符串,比把这些字符串放在一个列表中返回。注意是列表返回,所以不需要借助group()来展示结果
在这里插入图片描述

sub() 替换

把匹配成功的字符串,进行替换。
基本语法
匹配规则,替换成的新内容, 被搜索的对象, 有相同的话替换的次数
建”a\w" 替换成100
"a\w\ 表示后面的一个 an
s 搜索的对象
2 字符串内有相同的,替换的次数,从第一个开始算
语法内都已“,” 隔开

这里用 r 来承接结果

模式不匹配时,返回原 来 s 的值
在这里插入图片描述
split() 分割
awk -F '[d]' 一样效果,以匹配到的字符进行分割,返回分割后的列表

列对下面的s进行分割
s = 'isinstance yangge enumerate www.qfedu.com 1997'
a作为分割符
1 分割一次
在这里插入图片描述
使用多个界定符分割字符串

r 来定义分割符

[;,\s]\s*

     已【冒号 逗号  空白符】 中的一个和多个空白符 作为分割符 

在这里插入图片描述

2. 正则分组

比如match

group() 匹配的内容
groups() 匹配的内容中的组
在这里插入图片描述

比如search
(?P<name>y\w+e)

这里意思是 搜寻已 y 后面多个字符到e结束
()并给其分组
?P 命名 固定写法
<>里面的 内容随意
groupdict() 显示字典的格式
在这里插入图片描述

比如findall

整行的匹配 ,本身就是字符串的显示,所以只能显示字符串,不能匹配分组
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值