Python正则表达式-re模块的实际使用

本文深入探讨Python正则表达式的应用,通过实例讲解如何利用正则表达式进行精确匹配,如从文本中提取163邮箱地址及用户名,对比不同匹配方法如match、search与findall的使用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python的正则表达式在实际的工程中有很多的用途,比如我们想提取某个语段中的特定字符,like 邮件中的邮件地址等等

首先我们先说一下比较low的一种做法,比如在一句话中找到 ‘find wyk’ , 我们可以使用python中的 in 方法,比如 ‘find’ in sentence 如果存在会返回true,不存在则返回false,但是如果该文件中有很多的find 语句,比如 ‘find wykwyk’ ‘find w’ ‘find xxy’ ‘find wykno’ 等等,单纯的find会返回很多的值,如果我们想再多限制一下查找的条件,那么使用 in 关键字就没有使用正则表达式方便了。

正则表达式含义

. # 点可代表一切字符

\ # 起转义作用

[…] # 指代方括号中的任意字符

\d # 指代数字0-9

\D # 指代非数字

\s # 指代一切空格,包括tab制表符、空格、换行等

\S # 指代非空格

\w # 指代大小写字母、数字和下划线

\W # 指代非大小写字母、数字和下划线

*#匹配前面字符 >=0 次

+#匹配前面字符1次及以上

? # 匹配前面字符0次或1次

{m} # 匹配m次

{m,n} # 匹配m到n次

{m,} # 至少匹配m次

re模块-正则表达式

结合一个具体的例子来分析:
在这里插入图片描述

1、判断列表中有没有163邮箱
  这里也可以不用compile,只是预先将字符串转化为正则表达式对象,效率更高,也可以直接result=re.match('(.)*163.com$',sentence[i]) ,是一样的结果。

美元符号代表以此结尾
在这里插入图片描述

2、找出邮箱的用户名

这里使用findall来进行匹配,使用 findall 要注意有没有括号的区别(有括号结束出括号中也就是组的内容,没有括号就输出匹配的全部字符串)
在这里插入图片描述
在这里插入图片描述

3、使用search找到邮箱用户名

match 方法是在开头处匹配模式,注意和search的区别,并且这里要特别注意组(group)的概念。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值