и снова наверное рег. выражения.

SLPT

Новичок
и снова наверное рег. выражения.

Здраствуйте :)
Возникла сдел. задача:
Суть: антифлуд смайлами в чате.
Формат смайлов такой #номер#, номер измен. от 1 .. 45.
Нужна функция которая возвращает false в случаее более 5 смайлов в сообщении $message.

Рег выражения до этого не знал.
Буквально только вреча читал мануал, но понял не все и прошу вашей помощи :)
 

SLPT

Новичок
просто очень срочно нужно ... помогите ))
а в синтаксисе я уж назберусь ... к тому же на готовом примере легче понял, чем по всему мануалу шариЦа.
 

whirlwind

TDD infected, paranoid
/#\d\d#/

PS. или так

/#\d{1,2}#/

или если нужны варианты

/#(1|2|3|4|5|etc|45)#/

юзать c [m]preg_match_all[/m]
 

whirlwind

TDD infected, paranoid
> а, если там до 200?
> #([1-9]|[1-4]0|[1-3][1-9]|4[1-5])#

sage Не умничали бы. Если человек вообще не разбирается в регэкспах, то ему ваши закорючки абсолютно нечитабельны. А если меня проверяете, то я немного Ваш оптимизирую

#([1-9]|[1-3][0-9]|4[0-5])#
 

Astral Man

We Will Rock You
whirlwind
sage
Нужна функция которая возвращает false в случаее более 5 смайлов в сообщении $message.
...
 

whirlwind

TDD infected, paranoid
Ну и? Нарисовать функцию что ли?

PHP:
function isflood($t){
	preg_match_all("/#([1-9]|[1-3][0-9]|4[0-5])#/",$t,$matches);
	return count($matches[0]) > 5 ? false : true;

}
 

SLPT

Новичок
Спасибо всем Большое )
Почти все понял и во всем разобрался )
 
Сверху