У меня есть строка вроде:
text = "Why do Humans need to eat food? Humans eat food to survive."
Я хочу захватить все между Human
и food
, но только 1-й раз.
Ожидаемый результат
Humans need to eat food
My Regex:
p =r'(\bHumans?\b.*?\bFoods?\b)'
Код Python:
re.findall(p, text, re.I|re.M|re.DOTALL)
Код правильно фиксирует строкумежду человеком и едой, но не останавливается при первом захвате.
Исследования :
Я читал, что для того, чтобы сделать его не жадным, мне нужно положить ?
но я не могу понять, где я должен держать это, чтобы сделать его не жадным.Все остальные перестановки и комбинации, которые я пробовал, я не могу остановить их на 1-м матче.
Обновление
Я пишу много регулярных выражений, чтобы захватить различные другие объекты, подобные этомуи анализируя их одним выстрелом, и, следовательно, я не могу изменить свою re.findall
логику.