Day027|正则表达式2
今天是Andy学Python的第27天哦!
大家好,我是Andy。
今天继续学习正则表达式,内容有点多,以后还要多翻多看。
01.
创建正则表达式对象
先用import re导入正则表达式模块;
再用re.compile()函数创建一个Regex对象。
import re
p=re.compile(‘abc’)
02.
正则表达式函数总述
2.1常用函数
三个函数用于查找匹配match()、search()、findall(),一个函数compile()用于编译正则表达式,一个函数sub()用于替换,一个函数split()用于切分字符串。
以上常用正则表达式函数的区别:
compile():将字符串编译成正则表达式对象,供match()、search()和findall()函数使用;
match():匹配字符串的开头,如果开头匹配不上,则返回None;
search():扫描整个字符串,第一个匹配后立即返回,不再往后面匹配;
findall():扫描整个字符串,以列表形式返回所有的匹配值;
sub():扫描整个字符串,用于替换字符串的某些值;
split():扫描整个字符串,按照指定分隔符切分字符串。
2.2正则表达式常用修饰符或标志
re.I:Ignore匹配不区分大小写
re.G:Global,查找所有的匹配项
re.M:Multiline,多行匹配,影响^和$
re.S:使圆点.匹配包括换行符\n在内的所有字符
re.L:做本地化识别(locale-aware)匹配
re.U:根据Unicode字符集解析字符,影响\w,\W,\b,\B
re.X:赋予灵活的格式以便正则表达式易于理解。
03.
常用正则表达式函数
3.1 re.match()
从字符串的开头进行匹配,若不符合正则表达式,则认为不匹配,返回None。
函数语法:
re.match(pattern,string,flags=0)
参数说明:
pattern:正则表达式;
string:代表要被匹配的字符串;
flags:修饰符,也叫标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。
获取匹配表达式的结果:
可以使用group(num)或groups()匹配对象函数来获取匹配表达式。
group(num=0):匹配的整个表达式的字符串,group()可以一次输入多个组号,在这种情况下它将返回一个包含那些组所对应值的元组。
groups():返回一个包含所有小组字符串的元组,从1到所含的小组号。
start():返回match的开始位置。
end():返回match的结束位置。
span():返回(开始位置,结束位置)的元组对象。
3.2 re.search()
搜索整个字符串并返回第一个成功的匹配,成功则返回一个匹配对象,失败则返回None。
函数语法:
re.search(pattern,string,flags=0)
参数说明:
pattern:正则表达式;
string:代表要被匹配的字符串;
flags:修饰符,也叫标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。
获取匹配表达式的结果:
使用group(num)或groups()匹配对象函数来获取匹配表达式。group(num=0):匹配的整个表达式的字符串,group()可以一次输入多个组号,在这种情况下它将返回一个包含那些组所对应值的元组。
groups():返回一个包含所有小组字符串的元组,从1到所含的小组号。
match()与search()的区别在于:
re.match()方法只匹配字符串的开始,如果字符串的开始就不符合正则表达式,就匹配失败,返回None。
re.search()方法匹配整个字符串,直到找到一个与正则表达式匹配。
3.3 re.findall()
在字符串中找到正则表达式所匹配的所有子串,并返回一个列表。如果没有找到匹配,则返回空列表。
注意:findall()函数会直接返回所有匹配对象所组成的列表,返回的是列表,不像re.search()与re.match(),还需要调用group()函数。
函数语法:
findall(pattern,string,flags=0)
参数说明:
pattern:正则表达式;
string:代表要被匹配的字符串;
flags:修饰符,也叫标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。
3.4 re.sub()
sub()函数是Python正则表达式中,专门用于“替换”的函数。
函数语法:
sub(pattern,repl,string,count,flags)
参数说明:
pattern:正则表达式;
repl:替换的字符串,也可为一个函数;
string:代表要被匹配的字符串;
count:表示最大替换次数,默认0表示替换所有的匹配;
flags:修饰符,也叫标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。
3.5 re.split()
使用正则表达式对字符串进行分割,返回分割得到的多个子串组成的列表。
函数语法:
re.split(pattern,string,[maxsplit],[flags])
参数说明:
pattern:正则表达式。
string:表示要匹配的字符串
maxsplit:可选参数,表示最大的拆分次数
flags:可选参数,修饰符,也叫标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。
Copyright © 2021 Andy学Python
转载事宜请留言 | 获得授权后方可转载
本平台所使用的电子版教材、视频属相关权利人所有。因客观原因部分作品若存在不当使用的情况,请相关权利人随时与我们联系,以协商授权事宜。
End
不会Python,将成为人工智能时代的新“文盲”!
欢迎加入零基础自学Python计划,未来100天,Andy会把自学Python学习笔记持续输出公众号、视频号,不定期更新,邀您观战、加油、评论,亦或围观Andy被打脸。
人到中年,你一定要努力,但千万别着急。
我是Andy,一个终身学习者。
欢迎关注公众号与视频号:Andy学Python。