Мне нужно извлечь текст между двумя выражениями (начало и конец) из текстового файла (начало и конец буквы, которая встроена в больший файл). Проблема, с которой я сталкиваюсь, состоит в том, что существует несколько потенциальных выражений как для начала, так и для конца буквы.
У меня есть список выражений, которые могут квалифицироваться как выражения начала / конца. Мне нужно извлечь весь текст между любой комбинацией этих выражений из более крупного текста (включая начальное и конечное выражение) и записать его в новый файл.
sample_text = """Some random text
asdasd
asdasd
asdasd
**Dear my friend,
this is the text I want to extract.
Sincerly,
David**
some other random text
adasdsasd"""
Пока мой код:
letter_begin = ["dear", "to our", "estimated", ...]
letter_end = ["sincerly", "yours", "best regards", ...]
with open('path/to/input') as infile, open('path/to/output', 'w') as outfile:
copy = False
for line in infile:
if line.strip() == "dear": #shortcomming: only 1 Expression possible here
copy = True
elif line.strip() == "sincerly": #shortcomming: only 1 Expression possible here
copy = False
elif copy:
outfile.write(line)
Приведенный выше пример включает в себя «Dear» как выражение letter_begin и «Sincerly» как выражение letter_end. Мне нужно иметь гибкий код, который может перехватывать любое начальное и конечное буквенное выражение из приведенных выше списков (любую возможную комбинацию выражений; например, «Уважаемые [...] rest regards» или «Estimated [...]» Sincerly ")