Я пытался удалить часть текста из строки на сайтах между двумя тегами. Например:
This is CROPSTART not very CROPEND cool.
… должно стать этим …
This is cool.
Это PHP, который я пробовал, и обычно он работает:
preg_replace('#\/\/CROPSTART[\s\S]+\/\/CROPEND#', '', $string);
Однако, когда строка содержит несколько «CROPEND», она обрезает все: от CROPSTART до последнего CROPEND. Я хотел бы, чтобы он обрезался только между первым CROPSTART и первым CROPEND.
Кто-нибудь знает, как это сделать?
Благодаря Wonko
Однако, когда строка содержит несколько «CROPEND», она обрезает все: от CROPSTART до последнего CROPEND.
Это связано с тем, что ваш +
оператор жадный – он не останавливается в первом экземпляре CROPEND
и продолжается до тех пор, пока он не встретит последний экземпляр.
Вы можете использовать не-жадную версию оператора +
просто добавив ?
после этого:
preg_replace('/CROPSTART[\s\S]+?CROPEND/', '', $string);