正则表达式介绍
正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。
正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。简而言之就是用于匹配字符串的一种语法。在python中我们使用到re
库来帮助我们操作正则表达式。
语法
完整的正则表达式由两种字符构成:特殊字符(元字符)和普通字符。
普通字符:直接用于匹配字符串的字符
元字符:不是直接匹配,存在特殊的含义
贪婪模式与非贪婪模式
贪婪模式:"*" “+” “?” 都是贪婪,它们想尽可能更多的匹配内容
非贪婪模式:如果在正则表达式之后加"?",表示尽可能少的匹配内容
多行模式
python中默认是单行模式,多行模式的切换用re.M
匹配分组
用正则表达式匹配到的内容可进行分组选择,将需要的分组的内容用英文括号()进行分组。
当有多个分组时我们可以用(?<分组名>…)的形式给分组命名。
re模块
在python中使用re
内置模块来使用正则表达式,re
模块有许多函数来供我们使用。
compile(pattern[,flags])
:创建正则表达式对象
match(pattern,string[,flags])
findall(pattern,string[,flags])
:返回字符串中模式的所有匹配项组成的列表
split((pattern,string[,maxsplit=0])
:根据模式匹配项分割字符串
sub(pattern, repl, string, count=0, flags=0)
:将字符串中所有pattern的匹配项用repl替换
escape(string)
:将字符串中所有特殊正则表达式字符进行转义
re.I
:忽略大小写 re.L re.M
:多行匹配模式
compile创建正则表达式对象
re
库允许创建一个正则表达式对象来调用re
库中的方法,可以利用compile(pattern[,flags])
pattern是正则表达式,flags是一个可选参数,它的作用是忽略大小或者多行模式的切换等
import re
P = re.compile(r'',re.M)
Findall多处匹配项
findall(pattern,string[,flags])
:返回字符串中模式的所有匹配项组成的列表
split切割字符串
re库中所用的切割字符串函数是re.split(pattern,string[,maxsplit=0])
pattern:匹配的正则表达式;
string:匹配的字符串;
maxsplit:分割次数。
sub字符串替换
将正则表达式所匹配到的字符串进行替换:
re.sub(pattern, repl, string, count=0, flags=0)
pattern : 正则中的模式字符串。
repl : 替换的字符串,也可为一个函数。
string : 要被查找替换的原始字符串。
count : 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配。