RegEx Как найти текст между двумя строками

У меня есть этот текст, и я хочу захватить

begin
text 
end

begin
text 
end

begin
text 
end

текст между началом и концом.

/begin.*end/

это будет захватывать первое начало и конец.

Ответы

Ответ 1

Сделать ленивым - /begin.*?end/

Sidenote: "ленивый" не менее приемлем, чем "не жадный". Пример, пример, пример

Ответ 2

Если ваш текст содержит строки (\n или \r), вам нужно добавить флаг "dotall" в ваше регулярное выражение, а также сделать ваш матч неохотным (т.е. "не жадным" )

В зависимости от вашего регулярного выражения:

/begin.*?end/s
(?s)begin.*?end