python正则表达式

python中使用re模块来完成正则表达式,内置了许多表达式的方法,这里就简单的介绍几种常用的

一.re.match(pattern,string,flags)

   pattern:表示书写的正则表达式

   string:需要匹配的字符串

   flags:匹配方式(如:不区分大小写)

flags主要分为以下几种(使用多个匹配方式时可以用|隔开(或的意思))

   re.I :不区分大小写

   re.L: 表示特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境

   re.M :多行模式

   re.S :即为 . 并且包括换行符在内的任意字符(. 不包括换行符)

   re.U :表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依赖于 Unicode 字符属性数据库

   re.X :为了增加可读性,忽略空格和 # 后面的注释

我们在使用re模块调用match方法进行正则表达式匹配的会得到如下结果,不便于直接查看,可以在后面加上span()方法

会得到匹配第一个符合条件的字符纬度(简单理解为坐标吧),我们可以看出,a中有两个“www”,但是匹配出来的只

显示出来一个匹配的结果,这是因为match()方法从目标字符的开头开始匹配,若匹配有结果返回,没有结果返回none,

我们要想返回匹配的正则表达式的结果,可以使用group()方法查看匹配后返回的结果。

二.re.search(pattern,string,flags)

   pattern:表示书写的正则表达式

   string:需要匹配的字符串

   flags:匹配方式(如:不区分大小写)

search()和match()使用大致相同,唯一的不同就是匹配的方式,这也是两者的不同点,search()是从整个字符串进行匹配的

有结果返回第一个匹配的结果,没有结果就返回none,match(从开头开始匹配,若开头就不符合匹配要求直接返回none)

三.re.sub(pattern,repl,string,count,flags),对匹配的结果替换

   pattern:表示书写的正则表达式

   repl:匹配后的结果

   string:需要匹配的字符串

   count:匹配的结果个数要替换的结果(0表示匹配的全部都替换,具体数字表示前多少个要替换)

   flags:匹配方式(如:不区分大小写)

四.re.compile(pattern),加工一个正则表达式并生成一个对象

五.re.findall(pattern,string,flags),将匹配的所有结果生成list

   pattern:表示书写的正则表达式

   string:需要匹配的字符串

   flags:匹配方式(如:不区分大小写)

六.re.finditer(pattern,string,flags),将匹配的所有结果已迭代的形式返回

   pattern:表示书写的正则表达式

   string:需要匹配的字符串

   flags:匹配方式(如:不区分大小写)

七.re.split(pattern,string,maxsplit,flags),在匹配的结果之间进行分割,并返回list形式

   pattern:表示书写的正则表达式

   string:需要匹配的字符串

   maxspilt:对匹配结果的前多少个进行分割

   flags:匹配方式(如:不区分大小写)

 八.常见的元字符

例:匹配0-100:^(100|[0-9]{1,2})$

 

. 匹配任何字符(除了换行符)
^ 匹配字符串的开头
& 匹配字符串的结尾
* 匹配前面的子表达式零次或多次
+ 匹配前面的子表达式一次或多次
? 匹配前面的子表达式零次或一次
{n} 匹配前面的子表达式恰好n次
{n,} 匹配前面的子表达式至少n次
{n,m} 匹配前面的子表达式至少n次,但不超过m次
[...] 字符集,匹配方括号中的任何字符
[^...] 否定字符集,匹配任何不在方括号中的字符
\d 匹配任何数字,等价于[0-9]
\D 匹配任何非数字字符,等价于[^0-9]
\s 匹配任何空白字符,包括空格、制表符、换页符等
\S 匹配任何非空白字符
\w 匹配任何单词字符,等价于[a-zA-Z0-9_]
\W 匹配任何非单词字符
| 或的意思

 

 

 

 

 

 

注:以上正则表达式中的写法是以www代表的,这种写法不规范,建议书写的按照正确的表达式写法

posted @ 2021-10-03 23:04  余生没有余生  阅读(514)  评论(0)    收藏  举报