我一直在尝试使用正则表达式提取特定URL的链接但是我尝试使用以下正则表达式使用PHP提取链接失败。
preg_match_all('/\\<a href="(.*?)\\">/', $data1, $matches);
并且HTML只是一个代码段
<a href="https://www.website.com/n/?confirm.php" ></a>
整个html包含很多我需要此链接的链接。
答案 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>';