función re.MatchObject.groupdict() en Python – Regex

Este método devuelve un diccionario con el nombre del grupo como claves y la string coincidente como el valor de esa clave.

Sintaxis: re.MatchObject.groupdict()

Retorno: un diccionario con nombres de grupo como claves y una string coincidente como el valor de la clave.

AttributeError: si no se encuentra un patrón coincidente, genera AttributeError.

Considere el siguiente ejemplo:

Ejemplo 1:

Un programa para crear e imprimir un diccionario detallado que consistirá en el nombre de usuario, el sitio web y el dominio.

Python3

import re
  
"""We create a re.MatchObject and store it in 
   match_object variable
   the '()' parenthesis are used to define a 
   specific group"""
  
match_object = re.match(
    r'(?P<Username>\w+)@(?P<Website>\w+)\.(?P<Domain>\w+)', 'jon@geekforgeeks.org')
  
""" w in above pattern stands for alphabetical character
    + is used to match a consecutive set of characters 
    satisfying a given condition
    so w+ will match a consecutive set of alphabetical characters
    The ?P<Username> in '()'(the round brackets) is 
    used to capture subgroups of strings satisfying 
    the above condition and the groupname is 
    specified in the ''(angle brackets)in this 
    case its Username."""
  
# generating a dictionary from the given emailID
details = match_object.groupdict()
  
# printing the dictionary
print(details)

Producción:

{‘Nombre de usuario’: ‘jon’, ‘Sitio web’: ‘geekforgeeks’, ‘Dominio’: ‘org’}

Es hora de entender el programa anterior. Usamos un método re.match() para encontrar una coincidencia en la string dada (‘ jon@geekforgeeks.org ‘) la ‘ w ‘ indica que estamos buscando un carácter alfabético y el ‘ + ‘ indica que estamos buscando caracteres alfabéticos continuos en la string dada. Tenga en cuenta que el uso de ‘ () ‘ el paréntesis se usa para definir diferentes subgrupos, en el ejemplo anterior, tenemos tres subgrupos en el patrón de coincidencia. La sintaxis ‘ ?P ‘ se utiliza para definir el nombre de grupo para capturar los grupos específicos. El resultado que obtenemos es un re.MatchObject que se almacena en match_object.

Para saber más sobre los patrones de expresiones regulares, visite esta publicación. expresión regular de Python

Ejemplo 2: si no se encuentra un objeto coincidente, genera AttributeError.

Python3

import re
  
"""We create a re.MatchObject and store it in 
   match_object variable
   the '()' parenthesis are used to define a 
   specific group"""
  
match_object = re.match(
    r'(?P<Username>\w+)@(?P<Website>\w+)\.(?P<Domain>\w+)', '1234567890')
  
""" w in above pattern stands for alphabetical character
    + is used to match a consecutive set of characters 
    satisfying a given condition
    so w+ will match a consecutive set of alphabetical characters
    The ?P<Username> in '()'(the round brackets) is 
    used to capture subgroups of strings satisfying 
    the above condition and the groupname is 
    specified in the ''(angle brackets)in this 
    case its Username."""
  
# Following line will raise AttributeError exception
print(match_object.groupdict())

Producción:

Traceback (most recent call last):
  File "/home/fae2ec2e63d04a63d590c2e93802a002.py", line 21, in 
    print(match_object.groupdict())
AttributeError: 'NoneType' object has no attribute 'groupdict'

Publicación traducida automáticamente

Artículo escrito por haridarshanc y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *