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:匹配方式(如:不区分大小写)
注:以上正则表达式中的写法是以www代表的,这种写法不规范,建议书写的按照正确的表达式写法