Допилить регулярное выражение

KSiG

Создатель
Регистрация
16 Фев 2015
Сообщения
20
Реакции
1
Всем привет.
Необходима помощь в доработке регулярного выражения на пхп.
На странице около 100 совпадений.
Обычно они вот такого вида:
Код:
<i class="fa fa-user"></i> <a href="/profile/81431/">oleg</a></nobr>&nbsp;&nbsp;&nbsp;
Нужно вырезать именно "/profile/81431/"

Вот что составил, но что-то не работает
Код:
preg_match_all("/<i class=\\\"fa fa-user\\\"><\\/i>.*<a href=\\\"(.*?)\\\"/", $url, $matches1);
 
  • Заблокирован
  • #2
ТАК?

PHP:
<?php
$url = '<i class="fa fa-user"></i> <a href="/profile/81431/">oleg</a></nobr>&nbsp;&nbsp;&nbsp;';
preg_match_all('~<a href="(.*?)">~s', $url, $matches1);
print implode($matches1[1]);
?>
 
ТАК?

PHP:
<?php
$url = '<i class="fa fa-user"></i> <a href="/profile/81431/">oleg</a></nobr>&nbsp;&nbsp;&nbsp;';
preg_match_all('~<a href="(.*?)">~s', $url, $matches1);
print implode($matches1[1]);
?>
Нет. Я не зря зацепил предыдущий тег fa fa-user. На странице достаточно много ссылок на профили, а мне нужны именно те, которые идут за тегом fa fa-user.
 
Последнее редактирование:
а не проще использовать для разбора страниц это Для просмотра ссылки Войди или Зарегистрируйся ?
Не знал про это, да и особые подводные камни в любом случае всплыли бы. На C# это делается в разы проще - с помощью htmlagilitypack. Там просто напросто выбираешь xPath, экранируешь некоторые его части и вуаля.
А так мне уже помогли в чате. Вот такая регулярка получилась
Код:
~<i class="fa fa-user"></i>\s*?<a href="(.*?)">~
 
Назад
Сверху