Python库-re(正则表达式)
一、总结
一句话总结:
壹、lottery_per_data=re.findall(r'<td.*?>(.*?)</td>',lottery_per[0],re.S)
贰、lottery_per=re.findall(r'<tr class="t_tr1">(.*?)</tr>',lottery_table[0],re.S)
二、Python库-re(正则表达式)
转自或参考:Python库-re(正则表达式)
https://www.cnblogs.com/woxiaosade/p/10012302.html
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='1'> <_sre.SRE_Match object; span=(3, 4), match='2'>
match对象
1.match.group(index=0)
0 返回整个匹配到的字符串
其他数字则返回对应的分组,多个数字返回相应分组构成的元组
2.match.start()
返回match的开始位置
3.match.end()
返回match 的结束位置
4.match.group()
返回一个元祖对象,(match.start(),match.end())