Objeto Match
Un objeto Match representa un objeto con
información sobre coincidencias con expresión regular
en una cadena. Se puede obtener un objeto Match
aplicando los siguientes métodos: fullmatch,
match,
search.
Se puede extraer información del objeto Match utilizando los métodos principales.
Métodos principales aplicados al objeto Match
| Método | Propósito |
|---|---|
group |
Devuelve el grupo cero. |
groups |
Devuelve una tupla de grupos. |
groupdict |
Devuelve un diccionario de grupos nombrados. |
span |
Devuelve el primer y último índice de la tupla de un grupo. |
start |
Devuelve el primer índice de la tupla de un grupo. |
end |
Devuelve el último índice de la tupla de un grupo. |
Ejemplo . Objeto Match sin método
Apliquemos el método match a nuestra
cadena:
txt = '123 456 789'
res = re.match('\d+', txt)
print(res)
Resultado de la ejecución del código:
<re.Match object; span=(0, 3), match='123'>
Ejemplo . Método group
Ahora mostremos el grupo cero
del objeto Match con el método group:
txt = '123 456 789'
res = re.match('\d+', txt)
print(res.group())
Resultado de la ejecución del código:
'123'
Ejemplo . Método groups
Apliquemos al objeto obtenido
el método groups para mostrar tuplas
de grupos:
txt = '123 456 789'
res = re.match('(\d)(\d)', txt)
print(res.groups())
Resultado de la ejecución del código:
('1', '2')
Ejemplo . Método groupdict
Para mostrar un diccionario de grupos nombrados
se puede aplicar el método groupdict:
res = re.match('(?P<test1>\d)(?P<test2>\d)', txt)
print(res.groupdict())
Resultado de la ejecución del código:
{'test1': '1', 'test2': '2'}
Ejemplo . Método span
Mostremos la tupla del primer y
último índice de una tupla. Para
esto usaremos el método span:
res = re.match('\d+', txt)
print(res.span())
Después de ejecutar el código verás una tupla, consistente en dos índices. Pero ten en cuenta que el último valor es uno más que el índice final:
(0, 3)
Ejemplo . Métodos start y end
Para devolver cada uno de los índices
por separado, se pueden aplicar los métodos start
y end:
res = re.match('\d+', txt)
print(res.start())
print(res.end())
Resultado de la ejecución del código:
0
3