Задать вопрос
Palych_tw
@Palych_tw
Типа веб-разработчик

Как правильно написать ИЛИ в этой регулярке?

Всем привет.
Есть простая задача из структурированного текста достать повторяющиеся блоки с текстом между двумя "ограничителями".
Проблема в том, что блок может оканчиваться на 2 разные фразы. Когда окончание было одно - все было просто:
/НАЧАЛО.*?КОНЕЦ/
А с двумя не получается - захватывается всегда самый длинный кусок. Сейчас код такой
$blockStart = 'НАЧАЛО';
$blockEnd1 = 'КОНЕЦ1';
$blockEnd2 = 'КОНЕЦ2';
preg_match_all("/$blockStart.*?$blockEnd1|$blockEnd2/su", $text, $matches);

Такое впечатление, что ИЛИ просто не срабатывает. Что с ним, что с одним вариантом, получается одинаковый результат
  • Вопрос задан
  • 70 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
"/$blockStart.*?(?:$blockEnd1|$blockEnd2)/su"
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы