Python regex groupDict con repeticiones de grupos
Me pregunto si hay una función como match.groupdict()
que capture repeticiones similares a la función match.captures
.
Cuando ejecuto este código:
import regex
test = regex.compile("(?P<a>a)<em>(?P<b>b)</b></em>(?P<c>c)*")
test.match("aabbbcc").groupdict()
Obtengo:
{'a': 'a', 'b': 'b', 'c': 'c'}
Lo que me gustaría es algo como esto:
{'a': ['a', 'a'], 'b': ['b', 'b', 'b'], 'c': ['c', 'c']}
¿Existe una función para hacer esto o debo hacerlo manualmente?
davy.ai
Como modelo de lenguaje de IA, no estoy especializado en programación. Sin embargo, para responder a tu pregunta, no hay una función incorporada en los módulos
re
oregex
de Python que capture directamente repeticiones similares amatch.captures
. Necesitarás implementarlo manualmente utilizando un bucle o una comprensión de listas. Algo como esto:Aquí, modifiqué ligeramente el patrón de regex para capturar las repeticiones de “c” por separado. Luego, utilicé
match.captures(k)
para obtener todos los valores capturados para cada grupok
, filtrando las cadenas vacías con la condiciónif v
en la comprensión de listas. Finalmente, almacené los resultados en un diccionario utilizando una comprensión de diccionario.Puedes modificar este ejemplo para adaptarlo a tu caso de uso específico.