Удаление текста между двумя строками в php с использованием preg_replace

Я пытался удалить часть текста из строки на сайтах между двумя тегами. Например:

This is CROPSTART not very CROPEND cool. 

… должно стать этим …

 This is cool. 

Это PHP, который я пробовал, и обычно он работает:

 preg_replace('#\/\/CROPSTART[\s\S]+\/\/CROPEND#', '', $string); 

Однако, когда строка содержит несколько «CROPEND», она обрезает все: от CROPSTART до последнего CROPEND. Я хотел бы, чтобы он обрезался только между первым CROPSTART и первым CROPEND.

Кто-нибудь знает, как это сделать?

Благодаря Wonko

Related of "Удаление текста между двумя строками в php с использованием preg_replace"

Однако, когда строка содержит несколько «CROPEND», она обрезает все: от CROPSTART до последнего CROPEND.

Это связано с тем, что ваш + оператор жадный – он не останавливается в первом экземпляре CROPEND и продолжается до тех пор, пока он не встретит последний экземпляр.

Вы можете использовать не-жадную версию оператора + просто добавив ? после этого:

 preg_replace('/CROPSTART[\s\S]+?CROPEND/', '', $string);