Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Замена трёх и более символов
 
 автор: Diablo_   (14.02.2010 в 22:25)   письмо автору
 
 

Подскажите, пожалуйста, есть ли какая то регулярка, для подмены трёх одинаковых символов на два? Что бы пользователь не мог ввести допустим десять точек и так далее.

  Ответить  
 
 автор: Тень&   (14.02.2010 в 22:30)   письмо автору
 
   для: Diablo_   (14.02.2010 в 22:25)
 

/(.)\1{2,}/

  Ответить  
 
 автор: Diablo_   (15.02.2010 в 00:22)   письмо автору
 
   для: Тень&   (14.02.2010 в 22:30)
 

/(.)\1{2,}/

Спасибо, попробую!

  Ответить  
 
 автор: Trianon   (14.02.2010 в 23:02)   письмо автору
 
   для: Diablo_   (14.02.2010 в 22:25)
 

не дать пользователю ввести многоточие?

  Ответить  
 
 автор: Diablo_   (15.02.2010 в 00:21)   письмо автору
 
   для: Trianon   (14.02.2010 в 23:02)
 

ну я имею ввиду, более трёх точек например!

  Ответить  
 
 автор: diablo_   (15.02.2010 в 13:01)   письмо автору
 
   для: Diablo_   (15.02.2010 в 00:21)
 

/(.)\1{2,}/

Нет, это не подходит!

  Ответить  
 
 автор: Тень&   (15.02.2010 в 16:26)   письмо автору
 
   для: diablo_   (15.02.2010 в 13:01)
 

Может быть ты как-то аргументированно прокомментируешь почему "это" не подходит?

  Ответить  
 
 автор: Diablo_   (15.02.2010 в 19:25)   письмо автору
 
   для: Тень&   (15.02.2010 в 16:26)
 

Ну...мне сложно сказать именно причину, почему "это" не работает, так как в рег выраж я не силён))
Но вот такой тест, не дал результатов!
$text='Приввввеееетттт.....!!!';
$text=preg_replace("/(.)\1{2,}/","\1",$text);
echo $text.'<br />';

  Ответить  
 
 автор: Тень&   (15.02.2010 в 20:08)   письмо автору
 
   для: Diablo_   (15.02.2010 в 19:25)
 

Я дал выражение
/(.)\1{2,}/

, а не литерал
<?php
$pattern 
"/(.)\\1{2,}/";

Разница видна?

Но это не всё.

  Ответить  
 
 автор: Diablo_   (15.02.2010 в 21:42)   письмо автору
 
   для: Тень&   (15.02.2010 в 20:08)
 

Спасибо!! Да, работает!!!
$text=preg_replace("/(.)\\1{2,}/","\\1",$text);

Но, удаляются все повторения, но ведь с словах может быть "сс", "нн", "ее", как добиться что бы удалял только если более двух?

  Ответить  
 
 автор: Diablo_   (15.02.2010 в 21:50)   письмо автору
 
   для: Diablo_   (15.02.2010 в 21:42)
 

всё, разобрался! Всем спасибо!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования