Я ищу выражение регулярного выражения, чтобы соответствовать пару строк по сопоставленной линии. Например:
ABCDEFGHADEFGH
ABCDEFGHADEFGH
ABCDEFGHDEFGHABCDEFGH
ABCDEFGHDEFGHABCDEFGH
ABCDEFGHABCDEFGHABCDEFGH
ABCDEFGHABCDEFGHABCDEFGH
XXXXXXXX
Я хотел бы захватить 2 строки выше XXXXXXXX.
Любая помощь будет оценена. Примечание: с Python, использующим библиотеку re
Ответы:
Следующий RegEx проверяет переменное количество строк перед
XXXXXXXX
строкой и возвращает их в первую группу захвата.((.*\n){2})XXXXXXXX
(.*\n)
проверяет строку, заканчивающуюся\n
символом новой строки.{2}
количественно это 2 раза.()
вокруг этого все линии объединяются в одну группу захвата.XXXXXXXX
строка, которой должен заканчиваться текстТеперь в Python вы можете использовать
p.match(regex)[0]
для возврата первой группы захвата.источник
\r\n
вместо просто\n
.XXXXXXXX
(но не обязательно заканчиваетсяXXXXXXXX
).Добавляя к ответу erikgaal, используйте дополнительный. * Перед xxxxxx, чтобы сопоставить любые табуляции / пробелы.
((. * \ П) {2}). * XXXXXXX
источник
.*
не будет совпадать только с табуляцией / пробелами; это будет соответствовать чему-либо (например, "быстрый коричневый XXXXXXX").