Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Выбрать ссылки, в конце которых нет тега
Форумы портала PHP.SU » PHP » Регулярные выражения » Выбрать ссылки, в конце которых нет тега

Страниц (1): [1]
 

1. flisk - 24 Ноября, 2014 - 18:06:24 - перейти к сообщению
Вроде бы простая задача, но я весь мозг сломал Растерялся Не получается и все. Суть такова - нужно выбрать ссылки, в конце которых нет тега
. Т.е. ссылка вида
проходит, ссылка
CODE (htmlphp):
скопировать код в буфер обмена
  1. [img]http://site.com[/img]
- не проходит.

Обычные ссылки ловятся регуляркой
CODE (htmlphp):
скопировать код в буфер обмена
  1. (http):\/\/\S+

А вот с тегом не работает. Почему так?
CODE (htmlphp):
скопировать код в буфер обмена
  1. (http):\/\/\S+(?!\[\/img\])
2. duhon - 24 Ноября, 2014 - 19:31:45 - перейти к сообщению
Все дело в том что ты мыслиш наоборот Улыбка

PHP:
скопировать код в буфер обмена
  1.  
  2. preg_match_all('~http://(?:\S+(?=\[/img\])|\S+)~', "[img]http://site.com[/img]\nhttp://site2.com", $matches);
  3. print_r($matches);
  4. //return
  5. (
  6.     [0] => Array
  7.         (
  8.             [0] => http://site.com
  9.             [1] => http://site2.com
  10.         )
  11.  
  12. )
  13.  

 

Powered by ExBB FM 1.0 RC1