Python库-re(正则表达式)

时间:2023-02-10 15:02:28

re库是python的一个标准库,不需要自己用pip额外下载,直接调用即可。

下面介绍以下库中函数的作用。

1.re.compile(patter, flags=0)

patter是一个正则表达式字符串,例如"[0-9]+",该函数返回一个模式对象(patter object),str类型

2.re.escape(str)

str是一个字符串,该函数返回一个转义后的字符串,例如:

t = re.escape("www.baidu.com")
print(t)
# 输出 www\.baidu\.com

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

该函数匹配字符串string的开头,遇到第一个不符合的字符时结束。若匹配成功,返回一个match对象(下文会介绍),否则返回None

pattern = "[0-9]"
string = "1abcd"
m = re.match(pattern, string)
print(m)
# 输出 <_sre.SRE_Match object; span=(0, 1), match='1'>
pattern = "[0-9]"
string = "a1bcd"
m = re.match(pattern, string)
print(m)
# 输出 None

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

在字符串string中,匹配第一组符合正则表达式的字符串。若匹配成功, 返回一个match对象(下文会介绍),否则返回None

pattern = "[0-9]"
string = "a1b2cd"
m = re.search(pattern, string)
print(m)
# 输出 <_sre.SRE_Match object; span=(1, 2), match='1'>

5.findall(pattern,string,flags=0)

返回字符串string中所有符合正则表达式的字符串构成的列表

pattern = "[0-9]"
string = "a1b2cd"
m = re.findall(pattern, string)
print(m)
# 输出 ['1', '2']

6.finditer(pattern,string,flags=0)

返回字符串string中所有符合正则表达式的字符串构成的iterator

pattern = "[0-9]"
string = "a1b2cd"
m = re.finditer(pattern, string)
for t in m:
print(t)
# 输出
<_sre.SRE_Match object; span=(1, 2), match=''>
<_sre.SRE_Match object; span=(3, 4), match=''>

match对象

1.match.group(index=0)

0 返回整个匹配到的字符串

其他数字则返回对应的分组,多个数字返回相应分组构成的元组

2.match.start()

返回match的开始位置

3.match.end()

返回match 的结束位置

4.match.group()

返回一个元祖对象,(match.start(),match.end())