Las expresiones regulares en Python son una poderosa herramienta para manipular texto. En este artículo, exploraremos cómo capturar e ignorar grupos.
Para comenzar, veamos un ejemplo básico de captura de grupo:
import re
# Patrón para capturar un número de teléfono
pattern = re.compile(r'(d{3})-(d{3})-(d{4})')
# Texto de ejemplo
text = 'Mi número es 123-456-7890'
# Buscar coincidencias
match = pattern.search(text)
# Obtener grupos capturados
if match:
area_code, first_part, second_part = match.groups()
print('Número de teléfono capturado:', area_code, first_part, second_part)
En el ejemplo anterior, utilizamos paréntesis para definir grupos en el patrón. Luego, al llamar a match.groups()
, obtenemos una tupla con los valores capturados.
Es posible que en algunos casos deseemos ignorar ciertos grupos. Para lograr esto, utilizamos el operador (?: ... )
. Veamos un ejemplo:
import re
# Patrón con grupo de área, pero ignoramos el de país
pattern = re.compile(r'(+d{1,2})?(?:-(d{3}))-([d]{7,8})')
# Texto de ejemplo
text = 'Número internacional: +1-123-4567890'
# Buscar coincidencias
match = pattern.search(text)
# Obtener grupos capturados
if match:
country_code, area_code, number = match.groups()
print('Número capturado:', country_code, area_code, number)
En este caso, utilizamos (?:-(d{3}))
para capturar el área sin incluirlo como un grupo separado.
Jorge García
Fullstack developer