PHP Регулярное выражение со стрелками (>>)

Мне нужна небольшая помощь с моим регулярным exp.

Вот что у меня есть:

function formatLink($post) { if(preg_match('/^\>\>[0-9]{+}$/', $post)) { return "<font color=\"red\">".$post."</font>"; } else { return "<font color=\"#b7b7b7\">".$post."</font>"; } } echo formatLink(">>86721678"); 

И, честно говоря, я не знаю, что это не работает. Он должен работать для любой строки:

 >>1 >>87759 

Очень похоже на imageboard-like post ref.

Удалите фигурные скобки. Они не нужны. Вам также необходимо добавить модификатор m , чтобы он соответствовал любой строке, а не только всей записи.

Также обратите внимание, что это будет работать только в том случае, если буквально ничего не происходит на линии, даже не пробел. Возможно, вам захочется расслабиться так:

 /^\s*>>\s*\d+\s*$/m 

Ты забыл бежать !

 <?php function formatLink($post) { if(preg_match('/^\>\>[0-9]{+}$/', $post)) { return "<font color=\"red\">".htmlentities($post)."</font>"; } else { return "<font color=\"#b7b7b7\">".htmlentities($post)."</font>"; } } echo formatLink(">>86721678"); 

Пример выполнения .

Я думаю, ваша проблема в вашем регулярном выражении. Используйте это вместо этого:

 if(preg_match('/^\>\>([0-9]+)$/', $post)) { 

Смотрите, что я удалил фигурные скобки из вашего обычного выражения.

Попробуйте изменить регулярное выражение на

 /^\>\>[0-9]*$/