Автор Тема: :: regex ::  (Прочитано 2035 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Sen

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 23
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
:: regex ::
« : 25 Июня 2002, 12:13:20 »
Вот я дуб в RegEx... Чессна. Знаю php и sql без бумажки, но никак не могу освоить RegEx - нигде стоящей литры не найду... да, собсно, трабл у меня одноразовый, так что если поможете буду рад.

вообщим:
1. есть следующая писанина:
This is a goooooooooood day to die.
надо сделать так, чтобы, если одинаковых символов в ряде больше 5, то урезать их до пяти. то есть:
This is a goooood day to die.
ну проста, пожизняк в чатах флудят: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!

2. на второй вопрос вроде уже нашел ответ здесь в поиске, может кто чо получше предложит:
слова, длиннее заданного количества символов - режутся на кусочки, по заданного количества символов.

3. Есть текст (простой текст, который надо сделать ссылкой): http://www.gabbagabbahey.massacre.com/iddqd/impulse.html
вот... будет ссылка черезчур длинная (для чата, допустим). так вот, надобно, штобы она превращалась в нечто типа
"http://www.gabbagabbahey.mass..."
но в href ссылки сохранялся полный адрес.
тоже самое и с почтовым адресом.

4. текст содержит несколько смайликов. например:
"This :) is :p good :) day :) to :) die :D :D :D :D"...
Так вот... надо, чтобы в иконки превратилось не более 5 смайликов, а остальные остались бы такими же, текстовыми. причем, если смайликов одного вида больше 3, то остальные смайлики этого же вида тоже останутся текстовыми.

5. Как вы относитесь к такой идее: чтобы в чате проверка на мат проводилась на стороне клиента яваскриптом через match (regex). это позволит держать на странице некий чекбокс, который позволит включать и отключать цензуру в реальном времени. - меня интересует ваше мнение

6. Самый быстрый способ замены BB кодов и смайликов на тэги - это через массив или есть еще более быстрый способ?

Ну вот. Вроде все. Если поможете хотя бы по некоторым вопросам - буду бесконечно благодарен (ббб).

Оффлайн GotZfild

  • Универсал
  • Старожил
  • ****
  • Сообщений: 456
  • +0/-0
  • 2
    • Просмотр профиля
    • http://myphp.dem.ru
:: regex ::
« Ответ #1 : 25 Июня 2002, 12:59:40 »
Пункт 1. Его уже, если мне память не изменяет, обсуждали, поищи по форуму.
Пункт 3.
$text preg_replace("!(<a[^>]*>)(http:\\/\\/[^<]{15,})(</a>)!ie""\'\\\\\\\\1\'.substr(\'\\\\\\\\2\', 0, 35).\'...\'.substr(\'\\\\\\\\2\', -15).\'\\\\\\\\3\'"$text);

Пункт 4. В preg_replace есть параметр limit. Например,
$search "/(:\\\\))|(:D)|(:p)/";
$replace "некоторый img";
$subject "This :) is :p good :) day :) to :) die :D :D :D :D";
echo 
preg_replace($search$replace$subject5);
« Последнее редактирование: 25 Июня 2002, 13:06:22 от GotZfild »
После трех дней без программирования жизнь становится бессмысленной.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28