Задать вопрос
@nikitoshq

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

Есть регулярное выражение, которое как надо отрабатывает на сайте, но почему-то нет так отрабатывает в PHP. В чем может быть проблема? Сгенерированный код на regex101, тоже не так отарабывает.
  • Вопрос задан
  • 193 просмотра
Подписаться 1 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 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);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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