2014-09-23 9 views
0

Уже есть несколько сообщений о поиске ссылки на текст, но никто из них не работает в моем случае. Это один ближе я получил:Найти ссылки на текст с помощью regex

$reg_exUrl = "#(https?|ftp)://\S+[^\s.,>)\];'\"!?]#"; 
    preg_match_all($reg_exUrl, $content, $result); 

Это почти работает для всех случаев для следующего содержания, за исключением:

$content = '<p><br></p><p>https://www.google.com <br></p><p>http://localhost/index.php?view=model&nbsp;<br></p><p><br></p><p>http://localhost/index.php?view=scheduler/ <br></p><p><br></p><p>http://localhost/index.php?view=module<br></p><p><br></p><p><br></p>'; 

Если ссылка не следует пробел, то preg_match_all принимает HTML по ссылке как часть ссылки

Как изменить регулярное выражение так, чтобы оно прекратилось, когда есть HTML-тег?

ответ

0

Вы можете использовать регулярное выражение ниже, чтобы найти ссылки в указанной выше строки,

(https?|ftp)://.*?(?=&nbsp|\s|<|>) 

DEMO

Смежные вопросы