Estou procurando uma expressão regex para corresponder a duas linhas na linha correspondente. Por exemplo:
ABCDEFGHADEFGH
ABCDEFGHADEFGH
ABCDEFGHDEFGHABCDEFGH
ABCDEFGHDEFGHABCDEFGH
ABCDEFGHABCDEFGHABCDEFGH
ABCDEFGHABCDEFGHABCDEFGH
XXXXXXXX
Gostaria de capturar as 2 linhas acima do XXXXXXXX.
Qualquer ajuda seria apreciada. Nota: com Python usando a biblioteca re
Respostas:
O RegEx a seguir testa uma quantidade variável de linhas antes da
XXXXXXXX
linha e as retorna no primeiro grupo de captura.((.*\n){2})XXXXXXXX
(.*\n)
testa uma sequência que termina com\n
uma nova linha.{2}
quantifica isso 2 vezes.()
isso garante que todas as linhas entrem em um grupo de captura.XXXXXXXX
é a sequência com a qual o texto deve terminar.Agora em Python, você pode usar
p.match(regex)[0]
para retornar o primeiro grupo de captura.fonte
\r\n
vez de apenas\n
.XXXXXXXX
(mas não necessariamente termina comXXXXXXXX
).Adicionando à resposta do erikgaal, use um extra. * Antes de xxxxxx, para corresponder a quaisquer guias / espaços em branco.
((. * \ n) {2}). * xxxxxxx
fonte
.*
não corresponderá apenas a tabs / espaços; corresponderá a qualquer coisa (por exemplo, "O marrom rápido XXXXXXX").