开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 17 天,点击查看活动详情
要想精确高效的匹配到我们所需要的内容,就要灵活运用正则表达式,除了要清除正则表达式的写法,还应该掌握正则表达式的常见函数,比较常见的有re.match()函数、re.search()函数、全局匹配函数、re.sub()函数等。
1、re.match()函数:
re.match(pattern,string,flag)
re.match()函数用来从字符串的起始位置匹配内容,pattern是所用到的正则表达式,string则是选取的字符串,flag则是标志位,也就是从字符串的标志位进行匹配,如果不符合正则表达式则会返回None,如果符合,那么就会返回正则表达式匹配到的内容,另外,如果有些信息不需要,可以使用.span()来过滤掉。
re.search()函数
re.search()函数的功能与re.match()相似,但二者之间的区别是前者是从字符串开头进行匹配,而re.search()是从全文中进行匹配。
全局匹配函数
以上两种匹配函数仍有一大缺陷,它不能匹配所有的符合结果,而是只匹配一个结果,这时候就要用到我们的全局匹配函数了,使用全局匹配函数主要有两个步骤,使用re.compile()对正则表达式进行预编译,再使用findall()根据正则表达式从源字符串中将匹配的结果全部取出。
re.sub()函数 除了利用正则表达式查找出匹配的内容还可以使用re.sub()来替换字符串。
re.sub(pattern,req,string,max)
其中第一个参数是对应的正则表达式,第二个参数是要替换成的字符串,第三个则是源字符串,第四个参数是替换的最高次数,如果不写这个参数,则默认全部替换。