【Python】正则表达式

正则表达式简介

正则表达式是一种文本模式,包括普通字符(例如:a~Z之间的字母)和特殊字符(又称为“元字符”)。正则表达式通常用来检索、替换那些匹配某个模式的字符串

正则表达式语法

正则表达式描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串。

普通字符
 

普通字符包括没有显示指定标点为原符号的所有可打印和不可打印字符,包括所有大小写字母、数字、标点符号和其他一些符号。

要判断一个长度为1的字符串是否为英文大写字母,可以写作:

[A-Z]

要判断一个长度为1的字符串是不是英文字母,这里就包含了大写和小写,可以写作:

[A-Za-z]

要匹配字符串“Good afternoon”中的所有a、o、e字母,可以写作:

[aoe]

要判断一个长度为2 的字符串是否为英文小写字母,可以写作:

[a-z][a-z]

元字符

元字符就是在正则表达式中有特殊含义的字符,可以用来规定位于元字符前面的字符在目标对象中的出现模式

较为常用的元字符包括:“*”、“+”、“?”等

ad*

表达式可以匹配“a”或者“add”

正则表达式有很多元字符,下表是常见的元字符【取一小部分】

元字符描述
^匹配输入字符串的开始位置
匹配前面的字符零次或者一次
+匹配前面的字符一次或者多次
*匹配前面的字符零次或者多次
$匹配字符串结束的位置
\D匹配一个非数字字符等价于[^0~9]
\d匹配一个数字字符。等价于[0~9]
\r匹配一个回车符
\f匹配一个换页符

 

限定符

限定符用来指正则表达式的一个给定组件必须要出现多少次才能满足匹配。有“*”、“+”、“?”、“{n}”、“{n,}”“{n,m}”六种。

限定符描述
*限定符表示匹配前面的字符零次或者多次
+限定符表示匹配前面的字符一次或者多次
限定符表示匹配前面的字符零次或者一次
{n}限定符匹配前面的字符n次,n是一个非负整数
{n,}限定符至少匹配前面的字符n次,n是一个非负整数
{n,m}

限定符至少匹配前面的字符n次并且最多匹配m次,n,m均为非负整数

字符转义

有不少字符试图在对其进行匹配时需要进行特殊处理。要匹配这些字符,要先将这些字符转义,即在字符前面加上“\”。例如要匹配“{”本身,则用正则表达式为:

[\{]

定位符

定位符能够将正则表达式固定到行首或者行尾,也可以创建只在单词内或者只在单词开头或者只在单词的结尾出现的正则表达式。

分组

小括号字符的第一个作用是可以改变限定符的作用范围。例如:(m|f)ood就是匹配单词mood或者food

小括号的第二个作用就是分组,也就是创建子表达式。例如([a-z]{1,2}){3}就是重复操作三次。

在Python中使用正则表达式

在Python中使用正则表达式时i,是将其作为模式字符串使用的。例如,将匹配非数字的一个字符的正则表达式表示为模式字符串,可以写作:

'[^0-9]'

将匹配以字母a开头的单词的正则表达式转换成模式字符串,不能直接在两侧添加引号定界符,需要将其中的“\”进行转义,可以写作:

'\\ba\\w*\\b'

使用re模块实现正则表达式操作

匹配字符串

①使用match()方法进行匹配

语法格式如下:

re.match(pattern,string,[flags])

pattern:表示模式字符串,由要匹配的正则表达式换来

string:表示要匹配的字符串

flags:可选参数,表示标志位。

②使用search()方法进行匹配

语法格式:

re.search(pattern,string,[flags])

③使用findall()方法进行匹配

语法格式:

re.findall(pattern,string,[flags])

替换字符

sub()方法用于实现字符串替换

语法格式如下:

re.sub(pattern,rep1,string,count,flags)

使用正则表达式分隔字符串

split()方法用于实现根据正则表达式分隔字符串,并且以列表的形式返回.

语法格式如下:

re.split(pattern,string,[maxsplit],[flags])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值