Python 正则表达式
首先介绍一下正则表达式中的一些重要函数
函数 | 描述 |
---|---|
complie(pattern,[flags]) | 根据包含正则表达式的字符串创建模式对象 |
search(pattern,string,[flags]) | 在字符串中查找模式 |
match(pattern,string,[flags]) | 在字符串开头匹配模式 |
split(pattern,string,[maxsplit=0]) | 根据模式分割字符串 |
findall(pattern,string) | 返回一个列表,其中包含字符串所有与模式匹配的子串 |
sub(pat,repl,string,[count=0]) | 将字符串中与模式pat匹配的子串都替换成repl |
escape(string) | 对字符串中所有的正则表达式特殊字符都进行转义 |
正则表达式模式
模式 | 描述 |
^ | 匹配字符串的开头 |
$ | 匹配字符串的末尾 |
. | 匹配任意字符串,除了换行符 |
[x1x2x3] | 匹配x1、x2或x3 |
[^x1x2x2] | 匹配除了x1、x2或x3之外的字符 |
\w | 匹配字母或下划线 |
\W | 匹配非字母数字及下划线 |
正则表达式的模式还有很多,这里不一一列举了,在应用中遇到可以百度。
正则表达式修饰符-flags
修饰符 | 描述 |
re.I | 使匹配对大小写不敏感 |
re.L | 做本地化标识匹配 |
re.M | 多行匹配 |
re.S | 匹配包括换行在内的所有字符 |
re.U | 根据Unicode字符集解析字符。 |
re.X | 更灵活的格式便于将正则表达式写的易于理解 |
下面具体介绍一下表达式函数的用法。
(1) re.search
语法:re.search(pattern,string,flags=0)
扫描整个字符串并返回第一个成功的匹配。匹配成功返回一个匹配的对象,否则返回None。
使用group(num) 或groups()匹配对象函数来获取匹配表达式
匹配对象方法 | 描述 |
group(num=0) | 匹配的整个表达式的字符串,可以一次输入多个组号,在这种情况下,它将返回一个包含哪些组所对应值得元组 |
groups() | 返回一个包含所有小组字符串的元组,从1到所含的小组号 |
(2)re.match
语法:re.match(pattern,string,flags=0)
匹配成功返回一个匹配的对象,否则返回None。
re.match只匹配字符串的开始,如果不符合则返回None,re.search匹配整个字符串,直到匹配。
(3)re.compile
语法:re,complie(pattern,[flags])
用于编译正则表达式,生成一个正则表达式对象,供match()、search()使用
(4)re.split
语法:re.split(pattern,string,[maxsplit=0,flags=0])
按照能匹配的子串将字符串分割后返回列表