正则表达式如何使用特定路径从HTML中提取链接

时间:2017-09-11 15:56:27

标签: php html regex

我一直在尝试使用正则表达式提取特定URL的链接但是我尝试使用以下正则表达式使用PHP提取链接失败。

preg_match_all('/\\<a href="(.*?)\\">/', $data1, $matches);

并且HTML只是一个代码段

<a href="https://www.website.com/n/?confirm.php" ></a>

整个html包含很多我需要此链接的链接。

1 个答案:

答案 0 :(得分:0)

如果我没有误解你的问题,这将有效。

$html = '<a href="https://www.website.com/n/?confirm.php" ></a>';
preg_match_all('/href="([^\s"]+)/', $html, $match);
print '<pre>';
print_r($match);
print '</pre>';
print $match[1][0];

已修改:根据评论,您没有向我们提供具体的网址,这就是为什么我只是发布通用答案来捕获href。现在看我的下面的答案。使用的正则表达式将在https://regex101.com/r/pnfz7E/1

中找到
$re = '/<a href="([^"]*?\/n\/\?confirm\.php)">.*?<\/a>/m';
$str = '<a href="https://www.website.com/n/?noconfirm.php">SSD</a>
<div>How are you</div>
<a href="https://www.website.com/n/?confirm.php">HDD</a>
<h2>Being Sunny</h2>
<a href="https://www.ltmgtfu.com/n/?noconfirm.php">MSD</a>
<div>How are you</div>
<a href="https://www.website.com/n/?confirm.php"></a>
<h2>Being Sunny</h2>
<a href="https://www.google.com/n/?noconfirm.php">GSD</a>
<div>How are you</div>
<a href="https://www.website.com/n/?confirm.php">LSD</a>
<h2>Being Sunny</h2>';

preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);

// Print the entire match result
print '<pre>';
print_r($matches);
print '</pre>';