Pregunta de expresiones regulares rápidas.
Estoy tratando de capturar varias instancias de un grupo de captura en python (no creo que sea específico de Python), pero las capturas posteriores parecen sobrescribir las anteriores.Captura de grupos de expresiones regulares con múltiples coincidencias
En este ejemplo exceso de simplificación, estoy esencialmente tratando de dividir una cadena:
x = 'abcdef' r = re.compile('(\w){6}') m = r.match(x) m.groups() # = ('f',) ?!?quiero conseguir
('a', 'b', 'c', 'd', 'e', 'f')
, pero debido a la expresión regular sobrescribe capturas posteriores, me sale
('f',)
¿Es así como ¿Se supone que Regex se comporta? ¿Hay alguna manera de hacer lo que quiero sin tener que repetir la sintaxis seis veces?
¡Gracias de antemano!
Andrew
No lo creo. Hay re.findall y re.split para estos problemas. –
posible duplicado de [grupos múltiples de Pyge regex] (http://stackoverflow.com/questions/4963691/python-regex-multiple-groups) – outis
Aquí hay un buen artículo acerca de la captura de un grupo repetido. http://www.regular-expressions.info/captureall.html Ejemplo:! Abcabc123! Para la captura, ¡todos los abc y 123 necesitan expresiones regulares! ((? :(abc) | (123)) +) !. Tenga en cuenta los corchetes adicionales. – b0bi