Найти - Пользователи
Полная версия: Поиск в тексте по ключевым словам.
Начало » Центр помощи » Поиск в тексте по ключевым словам.
1
deep-north
Доброго времени суток.
Очень нужна помощь.

Решаю задачу.

Есть текст. В нем нужно найти кусок начинающийся на ключевую фразу и заканчивающийся ДО следующей ключевой фразы.

Пример:
Привет!
Как дела? Чем занимаешься?
У меня все хорошо.
Тут еще всякий текст.
И еще раз всякий текст.
А теперь будет окончание текста.

Из этого примера нужен кусок:
Как дела? Чем занимаешься?
У меня все хорошо.
Тут еще всякий текст.
И еще раз всякий текст.

Ключевые фразы для него: “Как дела?” и “А теперь будет окончание текста.”
Т.е. просто отрезать первую строчку и последнюю нельзя.

Код такой:

import re

ss = '''Привет!
Как дела? Чем занимаешься?
У меня все хорошо.
Тут еще всякий текст.
И еще раз всякий текст.
А теперь будет окончание текста.'''

print (re.findall(ur'Как дела.*?\n(.*)\sА теперь будет окончание текста', ss, re.DOTALL+re.I+re.U))

Только он у меня не выводит то, что хочется.
terabayt
>>> s = """Привет!
... Как дела? Чем занимаешься?
... У меня все хорошо.
... Тут еще всякий текст.
... И еще раз всякий текст.
... А теперь будет окончание текста."""
>>> start = "Как дела? Чем занимаешься?"
>>> end = "А теперь будет окончание текста."
>>> print(s[s.index(start): s.index(end) + len(end)])
Как дела? Чем занимаешься?
У меня все хорошо.
Тут еще всякий текст.
И еще раз всякий текст.
А теперь будет окончание текста.
deep-north
Спасибо, но это не совсем то.
Мне нужно, чтобы фраза end (т.е. А теперь будет окончание текста) не выводилась.
Но решение мне понравилось.
terabayt
deep-north
Мне нужно, чтобы фраза end (т.е. А теперь будет окончание текста) не выводилась.
print(s[s.index(start): s.index(end)])
deep-north
Придумал костыль )))

start = "Чем занимаешься?"
end = "А теперь будет окончание текста."
z=''
print(s[s.index(start): s.index(end) + len(z)])
terabayt
deep-north
Придумал костыль )))
ахах
выше посмотрите
и книгу почитайте!
deep-north
Спасибо!
Не увидел сообщения )))
py.user.next
Через регекспы.
>>> import re
>>> 
>>> text = """
... Привет!
... Как дела? Чем занимаешься?
... У меня все хорошо.
... Тут еще всякий текст.
... И еще раз всякий текст.
... А теперь будет окончание текста.
... """
>>> 
>>> pat = r'Привет!\n(.*)А теперь будет окончание текста.'
>>> 
>>> out = re.search(pat, text, re.S).group(1)
>>> print(out, end='')
Как дела? Чем занимаешься?
У меня все хорошо.
Тут еще всякий текст.
И еще раз всякий текст.
>>>
deep-north
Спасибо!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB