当前位置: 首页>前端>正文

find_elements返回值 re.finditer返回值

掌握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()可以针对分组的正则表达式匹配到的结果优先展示,也可以取消优先展示——(?


https://www.xamrdz.com/web/2c81939877.html

相关文章: