Форум сайта python.su
Доброго времени суток.
Очень нужна помощь.
Решаю задачу.
Есть текст. В нем нужно найти кусок начинающийся на ключевую фразу и заканчивающийся ДО следующей ключевой фразы.
Пример:
Привет!
Как дела? Чем занимаешься?
У меня все хорошо.
Тут еще всякий текст.
И еще раз всякий текст.
А теперь будет окончание текста.
Из этого примера нужен кусок:
Как дела? Чем занимаешься?
У меня все хорошо.
Тут еще всякий текст.
И еще раз всякий текст.
Ключевые фразы для него: “Как дела?” и “А теперь будет окончание текста.”
Т.е. просто отрезать первую строчку и последнюю нельзя.
Код такой:
import re
ss = '''Привет!
Как дела? Чем занимаешься?
У меня все хорошо.
Тут еще всякий текст.
И еще раз всякий текст.
А теперь будет окончание текста.'''
print (re.findall(ur'Как дела.*?\n(.*)\sА теперь будет окончание текста', ss, re.DOTALL+re.I+re.U))
Отредактировано deep-north (Июнь 18, 2015 21:26:47)
Офлайн
>>> s = """Привет! ... Как дела? Чем занимаешься? ... У меня все хорошо. ... Тут еще всякий текст. ... И еще раз всякий текст. ... А теперь будет окончание текста.""" >>> start = "Как дела? Чем занимаешься?" >>> end = "А теперь будет окончание текста." >>> print(s[s.index(start): s.index(end) + len(end)]) Как дела? Чем занимаешься? У меня все хорошо. Тут еще всякий текст. И еще раз всякий текст. А теперь будет окончание текста.
Офлайн
Спасибо, но это не совсем то.
Мне нужно, чтобы фраза end (т.е. А теперь будет окончание текста) не выводилась.
Но решение мне понравилось.
Отредактировано deep-north (Июнь 18, 2015 23:23:03)
Офлайн
deep-north
Мне нужно, чтобы фраза end (т.е. А теперь будет окончание текста) не выводилась.
print(s[s.index(start): s.index(end)])
Офлайн
Придумал костыль )))
start = "Чем занимаешься?"
end = "А теперь будет окончание текста."
z=''
print(s[s.index(start): s.index(end) + len(z)])
Офлайн
deep-northахах
Придумал костыль )))
Офлайн
Спасибо!
Не увидел сообщения )))
Отредактировано deep-north (Июнь 18, 2015 23:30:15)
Офлайн
Через регекспы.
>>> import re >>> >>> text = """ ... Привет! ... Как дела? Чем занимаешься? ... У меня все хорошо. ... Тут еще всякий текст. ... И еще раз всякий текст. ... А теперь будет окончание текста. ... """ >>> >>> pat = r'Привет!\n(.*)А теперь будет окончание текста.' >>> >>> out = re.search(pat, text, re.S).group(1) >>> print(out, end='') Как дела? Чем занимаешься? У меня все хорошо. Тут еще всякий текст. И еще раз всякий текст. >>>
Офлайн
Спасибо!
Офлайн