У меня полный текст со строками, разделенными строками.Строки, начинающиеся с «%», - это заголовки, а строки, начинающиеся с «>», содержат текст, в котором я хочу найти свой запрос. Если мой запрос найден, я хочу вернуть ближайший заголовок над ним.Вот выражение, которое я попробовал сам:
import re
query = "ABCDE"
full_text = "%EFGHI\r>XXXXX\r>XXXXX\r%IWANT\r>XXXXX\r>ABCDE"
re.search("%(.*?)\r(?=>.*{})".format(query), full_text).group(0)
Я хочу, чтобы этот блок кода возвращал строку:
> 'IWANT'
Поскольку это ближайший заголовок над запросом.Однако он возвращает:
> 'EFGHI'
Я думаю, это имеет смысл, поскольку 'EFGHI' - первый элемент, соответствующий шаблону поиска.Есть ли способ сначала посмотреть на мой запрос, а затем вернуться к ближайшему названию?