Python 正则表达式常用符号

本文介绍了Python中的正则表达式符号,包括预定义字符、限定符、定位符和非打印字符。此外,详细讲解了re模块中的search、match、sub、findall、finditer和split等方法的使用,包括参数含义和示例,帮助读者理解和应用Python正则表达式。

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

 活动地址:优快云21天学习挑战赛

生活要有目标,但我们不是为了目标而生活

有一段时间没接触Python了,正好最近闲了一点,那就重新捡起来吧。

先跟一下活动吧,那就从正则表达式开始。

正则表达式嘛,一早就是在资源管理器找一个文件时只记住文件名中的一个或多个字,总是用的*和?,这个可以说正则表达式中常见的限定符了。

而正则表达式的符号有很多。可心分为几类。

一、字符集

1. 预定义字符

预定义字符前面会用一个 “\” 表示,这些字符不会在匹配过程中匹配自身。

序号

类别

描述
1\D匹配非整数,与[^0-9] 作用相同
2\d匹配整数,与[^0-9] 作用相同
3\S匹配非打印字符 ,与[^\t\r\f\n\v] 作用相同
4\s匹配打印字符 ,与[\t\r\f\n\v] 作用相同(空白字符)
5

\W

匹配非字母、数字、下画线,与[^A-Za-z0-9]相同
6\w匹配字母、数字、下画线,与[A-Za-z0-9]相同

2、限定符

限定符可以指定匹配次数的字符

序号类别描述
1*匹配字符串出现0次或多次
2\将后续字符标记为特殊字符、转义、向后使用
3?匹配字符串出现0次或1次
4+匹配字符串出现1次或多次
5|构造或的关系
6()匹配一个字符串的开始和结束
7{}指定匹配次数
8[]匹配字符集合
9.匹配除\n 外的任意单个字符

3、定位符

定位符用于限定表达式,匹配所想指定内容的开头或者结尾

序号类别描述
1\B匹配非字符边界
2\b匹配字符边界
3$匹配字符串结束的位置
4^匹配字符串开始的位置

4、非打印字符

非打印字符是在打印情况下不可见的字符

序号类别描述
1\r匹配回车符
2\n匹配换行符
3\t匹配制表符
4\f匹配换页符、等于\x0c
5\v匹配垂直制表符,等于\x0b

二、re模块

re模块是Python 标准库中的一个模块,包含了使用正则表达式提取或替换原字符串内容的重要方法。

以下先来几个常见的方法

1、search

search 方法用于搜索字符串,当遇到第一个满足条件的子串就会返回。有三上参数 pattern 、string、flags。

        (1)pattern: 用于匹配的正则表达式。

        (2)string: 待处理的原字符串。

        (3)flags:标志位,用于指定在查找过程中是否处理大小写等。参数可选,默认为0。

标志位

re.I 忽略大小写 re.M 支持匹配多行 影响^和$ re.S 匹配任意字符 re.U 匹配Unicode模式 影响\w,\W,\b,\B re.L

做本地化识别(locale-aware)匹配

re.X 可以通过更灵活的格式,将正则表达式写得更易于理解

2、match

与search方法相同

区别:match方法会从字符串开头进行匹配,为满足条件直接返回None 

           search方法会搜索整个字符串,遇到第一个满足条件的就返回,始终未匹配到才返回None

3、sub

sub方法用于替换原字符中的子串,参数分别是pattern、repl、string、count、flags.

        (1)pattern: 用于匹配的正则表达式。

        (2)repl: 一个字符串或者一个函数表达式

        (3)string: 待处理的原字符串。

        (4)count: 表示匹配次数。参数可选,默认为0.

        (5)flags:标志位,用于指定在查找过程中是否处理大小写等。参数可选,默认为0。

4、findall 与 finditer

findall 与 finditer 方法老师用于查找子串,包含的参数分别是pattern、string 、flags.

5、split

split 方法用于分割捕获到的子串,并以列表形式返回。

        maxsplit 表示最大分割次数

                默认为0:表示不限制分割次数。

                设置为1:分割1 次,返回的列表中包含2个元素。

                设置为2:分割2 次,返回的列表中包含3个元素。

                依次类推

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值