Мне нужна небольшая помощь с моим регулярным 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]*$/