Uso detallado de las funciones re.finditer y re.findall en Python3

re.finditer (patrón, cadena [, banderas = 0])
re.findall (patrón, cadena [, banderas = 0])

pattern :自定义要匹配的字符,或者compile 生成的正则表达式对象
string :要匹配的文本内容

findall devuelve una lista que contiene todos los caracteres coincidentes y la clase de lista existe en forma de tupla.

import re
text = '123.nihao,是的.ni'
pattern = 'ni'
a = re.findall(pattern,text) # findall 得到的是一个列表
print(a)
print(type(a))
print('================')
for i in re.findall(pattern,text):
    print(i)
    print(type(i))

#输出结果
['ni', 'ni']
<class 'list'>
================
ni
<class 'str'>
ni
<class 'str'>

finditer devuelve un objeto iterable .

import re
text = '123.nihao,是的.ni'
pattern = 'ni'
a = re.finditer(pattern,text) # finditer 得到的结果是个可迭代对象
print(a)
print(type(a))
print('=======================================')
for i in re.finditer(pattern,text):# i 本身也是可迭代对象,不能直接显示内容,所以下面要使用 i.group()才可以将匹配到的内容显示出来
    print(i)
    print(type(i))
    print(i.group())
    print('*********************************')
    
#输出结果
<callable_iterator object at 0x10ddaddf0>
<class 'callable_iterator'>
=======================================
<re.Match object; span=(4, 6), match='ni'>
<class 're.Match'>
ni
*********************************
<re.Match object; span=(13, 15), match='ni'>
<class 're.Match'>
ni
*********************************

Supongo que te gusta

Origin blog.csdn.net/zy4828918/article/details/109310428
Recomendado
Clasificación