Регулярные выражения в Python можно использовать для поиска текста между двумя заданными словами, как вы и планируете. При этом важно правильно настроить шаблон, чтобы он учитывал пробелы и возможные вариации в написании слов. Давайте рассмотрим, как можно улучшить ваш регулярное выражение.
Вот пример, который вы можете использовать для извлечения текста между словами "Наименование" и "Maskota" или "Картина":
```python
import re
text = """
Наименование пример текста между словами Maskota и еще какой-то текст
Наименование еще один пример текста между словами Картина и что-то еще
"""
# Шаблон для поиска текста между "Наименование" и "Maskota" или "Картина"
pattern = r'Наименование\s+(.*?)(?=\s*(Maskota|Картина))'
matches = re.findall(pattern, text)
for match in matches:
print(match[0].strip())
```
### Объяснение регулярного выражения:
- `Наименование` — ищем слово "Наименование".
- `\s+` — один или более пробельных символов.
- `(.*?)` — захватываемая группа, которая будет содержать текст до следующего слова. `.*?` значит "любой символ (кроме\n ) ноль или более раз, не жадно".
- `(?=\s*(Maskota|Картина))` — негативное опережающее утверждение, которое проверяет, что после текста, который мы захватываем, будет пробел и одно из заданных слов ("Maskota" или "Картина").
Функция `re.findall` вернет все найденные совпадения в виде списка кортежей, где каждый кортеж содержит найденный текст и слово, за которым он следует. В `match[0]` находится интересующий нас текст между словами.
### Пример вывода:
Если использовать приведенный текст, результатом будет:
```
пример текста между словами
еще один пример текста между словами
```
Этот код и регулярное выражение будут работать, если в вашем тексте присутствуют ключевые слова "Наименование" и одно из слов "Maskota" или "Картина".