@nikitoshq

Почему регулярное выражение работает на regex101, но не работает в коде?

Есть регулярное выражение, которое как надо отрабатывает на сайте, но почему-то нет так отрабатывает в PHP. В чем может быть проблема? Сгенерированный код на regex101, тоже не так отарабывает.
  • Вопрос задан
  • 180 просмотров
Решения вопроса 1
@dodo512
На regex101 в шаблоне не было флага u, так что \w совпадало только с латиницей.
На PHP в шаблоне добавили u и [\w\s()\/.]+ стал захватывать текст на русском.

Можно оставить флаг u, а \w заменить на [a-zA-Z].
$nomenclature = "4590 Ламінат Fiori Aqua Zero Дуб Iris фаска (1,67 м2)/5 шт"; 
preg_match("/^(К?[0-9\s]+).*?Ламінат\s([a-zA-Z\s()\/.]+|Х Galaxy 4V)\s([\p{L}\s.']+)/u", $nomenclature, $out); 

var_dump($out);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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