如何从字符串中提取具有特定关键字的链接锚文本

时间:2010-09-17 18:46:10

标签: php regex

我想用某些锚文本提取字符串中所有链接的url。

我在javascript中看到过以前的帖子 - 有人可以帮助我在PHP中执行此操作吗?

javascript regex to extract anchor text and URL from anchor tags

2 个答案:

答案 0 :(得分:3)

如果您要解析HTML以从锚标记中提取href属性值,请使用HTML / DOM Parser(绝对不要使用正则表达式)。

PHP Simple HTML DOM Parser

PHP XML DOM

答案 1 :(得分:3)

preg_match_all('#<a\s+href\s*=\s*"([^"]+)"[^>]*>([^<]+)</a>#i', $subject, $matches, PREG_SET_ORDER);

foreach ($matches as $match) {
    echo $match[0]; // <a ... href="url" ...>text</a>
    echo $match[1]; // url
    echo $match[2]; // text
}

这就是我用正则表达式做的方法。可能有更有效的方法,但这应该是最简单的方法。

编辑:注意到您要匹配所有网址,因此更改为preg_match_all

preg_match_all