yaleksandr89
@yaleksandr89
PHP developer

Что не так с регуляркой?

Здравствуйте.
Не могу понять, почему некорректно отрабатывает регулярка.
Есть строки: 'Арг.ен!тина ма,нит нег$ра' и 'S!um summ$us mu,s' (ищу палиндром).

Первым делом из строк хочу выбросить все, кроме символов (могут быть, как латиница, так и кириллица) и цифр.
Эти строки попадают в метод:
private function checkString(string $string): void
{
    $this->incomingString = mb_strtolower($string);
    $this->preparedString = preg_replace('/[^\p{Cyrillic}\p{Latin}]/u', '', $this->incomingString);
    // ...
}

Шаблон регулярки /[^\p{Cyrillic}\p{Latin}]/u', проверяю на regex101 — все ок, пытаюсь реализовать в php — все не ок. Результат:
• первая строка преобразуется корректно: аргентинмнитнегра
• вторая вообще никак не реагирует, то есть возвращается тоже, что и попадает: s!um summ$us mu,s

В чем ошибка?
  • Вопрос задан
  • 102 просмотра
Решения вопроса 1
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
С регуляркой всё в порядке
Получаю ожидаемый результат

https://3v4l.org/govdO
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
25 апр. 2024, в 19:42
49000 руб./за проект
25 апр. 2024, в 19:41
2000 руб./за проект
25 апр. 2024, в 19:22
18000 руб./за проект