Esto es súper práctico para algunos problemas:¿Es posible recuperar un conjunto desordenado arbitrario de grupos nombrados de una sola vez con el módulo re de Python?
>>> re.search('(?P<b>.b.).*(?P<i>.i.)', 'abcdefghijk').groupdict()
{'i': 'hij', 'b': 'abc'}
Pero lo que si no sé qué orden puede esperar antes de tiempo?
[Actualización]
Por ejemplo, decir que tengo una variable de entrada que contiene un poco de orden desconocido de personajes y da la casualidad de que 'b' se produce después de 'i'. Quiero poder seguir haciendo referencia a los grupos para '.b'. y yo.' sin tener que pedir mi expresión regular de acuerdo con su orden en la entrada var. Por lo tanto, me gustaría poder hacer algo como esto, pero no sé si es posible:
>>> re.search('(?P<b>.b.)|(?P<i>.i.)', unknown_order_alphabet_str).groupdict()
{'i': 'hij', 'b': 'abc'}
[actualización final]
He buscado alrededor y devanaba los sesos un montón, pero no puede generar buenas pistas. Adivinar esta funcionalidad no existiría porque probablemente la única forma de hacer esto es escanear toda la cadena una vez para cada grupo (lo que por supuesto podría hacer en un ciclo) pero pensé que vería qué es el flujo de stackoverflow tenía que decir al respecto.
Gracias por su ayuda,
Josh
Hay una manera que no requiere 'finditer' ni fusión de diccionarios. Ver [mi respuesta] (http://stackoverflow.com/a/15112978/566639). – Joe