微信扫一扫打赏支持

Python库-re(正则表达式)

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

 

 
posted @ 2020-09-26 06:24  范仁义  阅读(507)  评论(0编辑  收藏  举报