Удаление повторяющихся символов

Статус
В этой теме нельзя размещать новые ответы.

yeaahhh

Старатель
Регистрация
8 Май 2008
Сообщения
278
Реакции
11
Друзья. Помогите с регуляркой, пожалуйста..
Необходимо превращать любой из списка символов: _,?!#@%$:* &)(- в 1 символ, если их несколько..
Т.е. Привет!!!!!!! Тебя зовут Вася??? необходимо Привет! Тебя зовут Вася?
Код:
$comments = preg_replace("/([_]|[,]|[\?]|[!]|[#]|[@]|[%]|[$]|[:]|[*]|[&]|[ ]|[\)]|[\(]|[-]){2,}/", "\\1", $comments);
Буду очень признателен за помощь..
 
Теоретически, вроде бы, существует возможность сделать через одну регулярку, но для простоты легче передать шаблон как массив:
PHP:
$pattern = array("/([!]){2,}/", "/([&]){2,}/", "/([?]){2,}/"); // и т.д. весь ряд символов
$comments = preg_replace($pattern, "\\1", $comments);
 
На самом деле всё намного проще:

Код:
$comments = preg_replace('/([_,\\?!#@%\\$:\\* &\\)\\(\\-])\\1+/', "$1", $comments);
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху