Страницы

Поиск по вопросам

суббота, 8 июня 2019 г.

Регулярное выражение - вырезать указанные символы

Имеется регулярное выражение вида:
/[\0\x0B\t

\f\a&=+%#<>"~:`@\?\[\]\{\}\|\^'\\]/
Но вырезает не все символы. Остаются:
/ . ; № * ! ()
Не могу корректно доработать выражение на удаление и этих символов. Прошу помощи


Ответ

Можно пойти от обратного - вместо перечисления символов для удаления, в символьный класс можно записать символ отрицания ^, за которым перечислить набор символов, которые нужно оставить. Например, вам нужно удалить всё, кроме буквенных символов и цифр - тогда шаблон можно записать так: '~[^\pL\d]~u'. На php решение можно записать так:
$str = "\0\x0B\t

\fHe&=+%#\"~:`@?[l]{o}|^'\\ 5678м:?*/и.;№*!(р)";
echo preg_replace('~[^\pL\d]~u', '', $str);
Результат:
Hello5678мир

Комментариев нет:

Отправить комментарий