掌握re模块中的findall()、finditer()、search()、match()、compile()方法,学习怎样下载第三方模块,熟悉openpyxl、requests模块
re模块
在python中,如果想要使用正则表达式,re模块是选择之一,不是唯一
1.findall()、finditer()
findall()、finditer()都是通过正则表达式筛选出文本中所有符合条件的数据。findall()直接可以将符合条件的的数据值以列表的形式返回;finditer()返回的结果是一个迭代器对象,用于节省内存
import re
res = re.findall('abc','afhrabcmjabcabcjifk')
print(res) # ['abc', 'abc', 'abc']
res1 = re.finditer('abc','afhrabcmjabcabcjifk')
print(res1) # <callable_iterator object at 0x00000285022174A8>
print(res1.__next__()) # <_sre.SRE_Match object; span=(4, 7), match='abc'>
print(res1.__next__()) # <_sre.SRE_Match object; span=(9, 12), match='abc'>
print(res1.__next__()) # <_sre.SRE_Match object; span=(12, 15), match='abc'>
2.search()
search()通过正则表达式匹配到一个符合条件的内容就结束,可以通过.group()的方法拿结果
import re
res = re.search('abc','afhrabcmjabcabcjifk')
print(res) # <_sre.SRE_Match object; span=(4, 7), match='abc'>
print(res.group()) # abc
3.match()
match()通过正则表达式从头开始时匹配,如果刚开始就不符合,就直接返回None
import re
res = re.match('abc','afhrabcmjabcabcjifk')
print(res) # None
res1 = re.match('abc','abcrabcmjabcabcjifk')
print(res1) # <_sre.SRE_Match object; span=(0, 3), match='abc'>
print(res1.group()) # abc
4.compile()
compile()能够提前准备好正则,之后可以反复调用,可以减少代码的冗余
import re
res = re.compile('abc')
print(re.findall(res,'abcehgdkabc')) # 'abc', 'abc']
print(re.findall(res,'shfjabcabcabcabc')) # ['abc', 'abc', 'abc', 'abc']
print(re.findall(res,'fhrjabcjdabc')) # ['abc', 'abc']
为正则表达式起别名、分组——( )
1.分组
findall()可以针对分组的正则表达式匹配到的结果优先展示,也可以取消优先展示——(?