Мне нужно регулярное выражение, которое может захватывать до заданного числа полной остановки после определенного слова.
Рассмотрим этот текст:
Переполнение стека
Это отличный сайт. Это работает очень хорошо. Многие люди помогают каждому
Другой.
Мне это нравится.
Я хочу, чтобы мое регулярное выражение прекратило захват после того, как оно встретило 2/3/4 (в зависимости от моих потребностей в различных сценариях) полных остановок после слова Переполнение стека .
My Regex захватывает столько, сколько может получить:
p = r'((\bStack Overflow\b)\s*.*(?=\.))'
lst = re.findall(p, text, re.I|re.M|re.DOTALL)
Если я сделаю его нежадным и использую регулярное выражение, как показано ниже. Останавливается на 1-й полной остановке.
p = r'((\bStack Overflow\b)\s*.*?(?=\.))'
Я знаю, что должен где-то использовать {2}
, но не могу понять.