Estoy buscando una expresión regular para que coincida con un par de líneas sobre la línea coincidente. Por ejemplo:
ABCDEFGHADEFGH
ABCDEFGHADEFGH
ABCDEFGHDEFGHABCDEFGH
ABCDEFGHDEFGHABCDEFGH
ABCDEFGHABCDEFGHABCDEFGH
ABCDEFGHABCDEFGHABCDEFGH
XXXXXXXX
Me gustaría capturar las 2 líneas sobre XXXXXXXX.
Cualquier ayuda sería apreciada. Nota: con Python usando la biblioteca re
Respuestas:
El siguiente RegEx prueba una cantidad variable de líneas antes de la
XXXXXXXX
línea y las devuelve en el primer grupo de captura.((.*\n){2})XXXXXXXX
(.*\n)
prueba una cadena que termina con\n
, una nueva línea.{2}
cuantifica esto 2 veces.()
eso asegura que todas las líneas vengan en un solo grupo de captura.XXXXXXXX
es la cadena con la que el texto tiene que terminar.Ahora en Python, puede usar
p.match(regex)[0]
para devolver el primer grupo de captura.fuente
\r\n
lugar de solo\n
.XXXXXXXX
(pero no necesariamente termina conXXXXXXXX
).Agregando a la respuesta de erikgaal, use un extra. * Antes de xxxxxx, para que coincida con las pestañas / espacios en blanco.
((. * \ n) {2}). * xxxxxxx
fuente
.*
no coincidirá solo con pestañas / espacios; coincidirá con cualquier cosa (p. ej., "The quick brown XXXXXXX").