¿Cómo puedo obtener las posiciones inicial y final de todos los partidos usando el re
módulo? Por ejemplo, dado el patrón r'[a-z]'
y la cadena, 'a1b2c3d4'
me gustaría obtener las posiciones donde encuentra cada letra. Idealmente, también me gustaría recuperar el texto de la coincidencia.
112
Respuestas:
fuente
start()
puede aceptar un número de grupo, por lo que si desea un índice del grupo n, usestart(n)
Tomado de
CÓMO de expresiones regulares
Combina eso con:
En Python 2.2, el método finditer () también está disponible y devuelve una secuencia de instancias de MatchObject como iterador.
deberías poder hacer algo del orden de
fuente
re.search(r'abbit', "has abbit of carrot").span(0)
-(4, 9)
span()
es como el 'stop' en la notación de segmento de Python en el sentido de que sube pero no incluye ese índice; ver aquí .Para Python 3.x
Obtendrá
\n
tuplas separadas (que comprenden el primer y último índice de la coincidencia, respectivamente) y la coincidencia en sí, para cada hit de la cadena.fuente
tenga en cuenta que el intervalo y el grupo están indexados para grupos de captura múltiple en una expresión regular
fuente
4
viene el