Как исправить выражение RegExp?

Собственно пишу на Php вроде как и с Регулярными знаком, но никак не могу исправить ошибку.
"preg_replace(): Compilation failed: invalid range in character class at offset 21 "

Собственно у меня ide подсвечивает, что неверно указан захват пробелов т.е. \s
Сам код выбора строчки в Php

if (empty($this->url)) {
            $url = str_replace(array('Ё', 'ё'), 'е', $this->name);
            $this->url = str_replace(array(' ', '-'), '_', trim(preg_replace("/[^a-zA-ZА-Яа-я_-\s]/u", "", mb_strtolower($url, 'UTF-8'))));
        }


Что делаю не так или что не учел?
  • Вопрос задан
  • 601 просмотр
Решения вопроса 2
gobananas
@gobananas
finishhim.ru
А так?
"/[^a-z\sа-яё\-]/iu"
Ответ написан
@vdem
/[^a-zA-ZА-Яа-я_-\s]/u
Invalid range скорее всего из-за неэкранированного "-", попробуйте так:
/[^a-zA-ZА-Яа-я_\-\s]/u
А еще лучше так:
/[^a-zа-я_\-\s]/iu
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы