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())