正则表达式----(python)实列

本文详细介绍了Python正则表达式的使用,包括元字符、预定义匹配字符集、重复匹配、位置匹配以及re模块的各种函数,如compile、search、findall、split和sub等,同时强调了分组功能的应用。
摘要由CSDN通过智能技术生成

不说废话,直接开整

import re

元字符

. 匹配任意字符(不包括换行符)

在这里插入图片描述

| 逻辑或操作符 ,比如 a|b 代表可匹配 a 或者 b

在这里插入图片描述

[] 字符集,一个字符的集合,可匹配其中任意一个字符

在这里插入图片描述

[^] 对字符集取反

在这里插入图片描述

- 定义[]里的一个字符区间

在这里插入图片描述

() 对表达式进行分组,将其内容当作以一个整体,并获得匹配的值

\ 转义字符,跟在其后的字符将失去作为特殊元字符的含义

在这里插入图片描述

特殊字符

在这里插入图片描述

预定义匹配字符集

\d 匹配一个数字, 相当于 [0-9]

在这里插入图片描述

\w 匹配数字、字母、下划线中任意一个字符, 相当于 [a-zA-Z0-9_]

在这里插入图片描述

\s 匹配任意空白字符, 相当于 [ \t\n\r\f\v]

在这里插入图片描述

\D 匹配非数字,相当于 [^0-9]

\W 匹配非数字、字母、下划线中的任意字符,相当于 [^a-zA-Z0-9_]

\S 匹配非空白字符,相当于 [^ \t\n\r\f\v]

重复匹配

{n} 表达式重复n次

在这里插入图片描述

{m,n} 表达式至少重复m次,最多重复n次

在这里插入图片描述

{m,} 表达式至少重复m次

在这里插入图片描述

? 匹配前一个元字符0到1次

在这里插入图片描述

+ 匹配前一个元字符1到多次

在这里插入图片描述

* 匹配前一个元字符0到多次

在这里插入图片描述

添加一个函数,方便测验

import re
def fn(ptn, lst):
    for x in lst():
        result = re.match(ptn, x)
        if result:
            print(x, '匹配成功''结果为:', result.group())
        else:
            print(x, '匹配失败!')

位置匹配

^ 在字符串开始的地方匹配,符号本身不匹配任何字符

在这里插入图片描述

$ 在字符串结束的地方匹配,符号本身不匹配任何字符

在这里插入图片描述

\b 匹配位于单词开始或结束位置的空字符串

在这里插入图片描述

\B 匹配不位于单词开始或结束位置的空字符串

在这里插入图片描述

re模块内函数

compile函数

compile(pattern, flags=0)
这个⽅法是re模块的工厂法,⽤于将字符串形式的正则表达式编译为Pattern模式对象,可以实现更加效率的匹配。第二个参数flag是匹配模式 使用compile()完成一次转换后,再次使用该匹配模式的时候就不能进行转换了。经过compile()转换的正则表达式对象也能使用普通的re⽅法
在这里插入图片描述
在这里插入图片描述

search函数

search(pattern, string, flags=0)
在文本内查找,返回第一个匹配到的字符串。它的返回值类型和使用方法与match()是一样的,唯一的区别就是查找的位置不用固定在文本的开头
在这里插入图片描述

findall函数

findall(pattern, string, flags=0)
作为re模块的三大搜索函数之一,findall()和match()、search()的不同之处在于,前两者都是单值匹配,找到一个就忽略后面,直接返回不再查找了。而findall是全文查找,它的返回值是一个匹配到的字符串的列表。这个列表没有group()方法,没有start、end、span,更不是一个匹配对象,仅仅是个列表!如果一项都没有匹配到那么返回一个空列表
在这里插入图片描述

split函数

split(pattern, string, maxsplit=0, flags=0)
re模块的split()方法和字符串的split()方法很相似,都是利用特定的字符去分割字符串。但是re模块的split()可以使用正则表达式,因此更灵活,更强大

split有个参数maxsplit,用于指定分割的次数

在这里插入图片描述

sub函数

sub(pattern, repl, string, count=0, flags=0)
sub()方法类似字符串的replace()方法,用指定的内容替换匹配到的字符,可以指定替换次数

在这里插入图片描述

分组功能

Python的re模块有一个分组功能。所谓的分组就是去已经匹配到的内容再筛选出需要的内容,相当于二次过滤。实现分组靠圆括号(),而获取分组的内容靠的是group()、groups(),其实前面我们已经展示过。re模块里的积个重要方法在分组上,有不同的表现形式,需要区别对待
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值