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

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

yeaahhh

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

latteo

Эффективное использование PHP, MySQL
Регистрация
27 Фев 2008
Сообщения
1.603
Реакции
1.565
Теоретически, вроде бы, существует возможность сделать через одну регулярку, но для простоты легче передать шаблон как массив:
PHP:
$pattern = array("/([!]){2,}/", "/([&]){2,}/", "/([?]){2,}/"); // и т.д. весь ряд символов
$comments = preg_replace($pattern, "\\1", $comments);
 

xpert13

<(*_*)>
Регистрация
7 Ноя 2008
Сообщения
182
Реакции
469
На самом деле всё намного проще:

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