Day027|正则表达式2

2021-03-22  本文已影响0人  龙渊的宝藏

今天是Andy学Python的第27天哦! 

大家好,我是Andy。

今天继续学习正则表达式,内容有点多,以后还要多翻多看。

01.

创建正则表达式对象

先用import re导入正则表达式模块;

再用re.compile()函数创建一个Regex对象。

import re

p=re.compile(‘abc’)

02.

正则表达式函数总述

2.1常用函数

三个函数用于查找匹配match()、search()、findall(),一个函数compile()用于编译正则表达式,一个函数sub()用于替换,一个函数split()用于切分字符串。

以上常用正则表达式函数的区别:

compile():将字符串编译成正则表达式对象,供match()、search()和findall()函数使用;

match():匹配字符串的开头,如果开头匹配不上,则返回None;

search():扫描整个字符串,第一个匹配后立即返回,不再往后面匹配;

findall():扫描整个字符串,以列表形式返回所有的匹配值;

sub():扫描整个字符串,用于替换字符串的某些值;

split():扫描整个字符串,按照指定分隔符切分字符串。 

2.2正则表达式常用修饰符或标志

re.I:Ignore匹配不区分大小写

re.G:Global,查找所有的匹配项

re.M:Multiline,多行匹配,影响^和$

re.S:使圆点.匹配包括换行符\n在内的所有字符

re.L:做本地化识别(locale-aware)匹配

re.U:根据Unicode字符集解析字符,影响\w,\W,\b,\B

re.X:赋予灵活的格式以便正则表达式易于理解。

03.

常用正则表达式函数

3.1 re.match()

从字符串的开头进行匹配,若不符合正则表达式,则认为不匹配,返回None。

函数语法:

re.match(pattern,string,flags=0)

参数说明:

pattern:正则表达式;

string:代表要被匹配的字符串;

flags:修饰符,也叫标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

获取匹配表达式的结果:

可以使用group(num)或groups()匹配对象函数来获取匹配表达式。

group(num=0):匹配的整个表达式的字符串,group()可以一次输入多个组号,在这种情况下它将返回一个包含那些组所对应值的元组。

groups():返回一个包含所有小组字符串的元组,从1到所含的小组号。

start():返回match的开始位置。

end():返回match的结束位置。

span():返回(开始位置,结束位置)的元组对象。

3.2 re.search()

搜索整个字符串并返回第一个成功的匹配,成功则返回一个匹配对象,失败则返回None。

函数语法:

re.search(pattern,string,flags=0)

参数说明:

pattern:正则表达式;

string:代表要被匹配的字符串;

flags:修饰符,也叫标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

获取匹配表达式的结果:

使用group(num)或groups()匹配对象函数来获取匹配表达式。group(num=0):匹配的整个表达式的字符串,group()可以一次输入多个组号,在这种情况下它将返回一个包含那些组所对应值的元组。

groups():返回一个包含所有小组字符串的元组,从1到所含的小组号。

match()与search()的区别在于:

re.match()方法只匹配字符串的开始,如果字符串的开始就不符合正则表达式,就匹配失败,返回None。

re.search()方法匹配整个字符串,直到找到一个与正则表达式匹配。

3.3 re.findall()

在字符串中找到正则表达式所匹配的所有子串,并返回一个列表。如果没有找到匹配,则返回空列表。

注意:findall()函数会直接返回所有匹配对象所组成的列表,返回的是列表,不像re.search()与re.match(),还需要调用group()函数。

函数语法:

findall(pattern,string,flags=0)

参数说明:

pattern:正则表达式;

string:代表要被匹配的字符串;

flags:修饰符,也叫标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

3.4 re.sub()

sub()函数是Python正则表达式中,专门用于“替换”的函数。

函数语法:

sub(pattern,repl,string,count,flags)

参数说明:

pattern:正则表达式;

repl:替换的字符串,也可为一个函数;

string:代表要被匹配的字符串;

count:表示最大替换次数,默认0表示替换所有的匹配;

flags:修饰符,也叫标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

3.5 re.split()

使用正则表达式对字符串进行分割,返回分割得到的多个子串组成的列表。

函数语法:

re.split(pattern,string,[maxsplit],[flags])

参数说明:

pattern:正则表达式。

string:表示要匹配的字符串

maxsplit:可选参数,表示最大的拆分次数

flags:可选参数,修饰符,也叫标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

Copyright © 2021 Andy学Python

转载事宜请留言 | 获得授权后方可转载

本平台所使用的电子版教材、视频属相关权利人所有。因客观原因部分作品若存在不当使用的情况,请相关权利人随时与我们联系,以协商授权事宜。

End

不会Python,将成为人工智能时代的新“文盲”!

欢迎加入零基础自学Python计划,未来100天,Andy会把自学Python学习笔记持续输出公众号、视频号,不定期更新,邀您观战、加油、评论,亦或围观Andy被打脸。

人到中年,你一定要努力,但千万别着急。

我是Andy,一个终身学习者。

欢迎关注公众号与视频号:Andy学Python。

上一篇 下一篇

猜你喜欢

热点阅读