正则表达式从锚标记中提取链接文本

时间:2010-02-20 09:38:42

标签: php regex

我希望在下面的行中得到Asarum这个词:

 <A HREF="http://www.getty.edu/vow/TGNFullDisplay?find=&place=&nation=&english=Y&subjectid=1062783">Asarum</A>

我试过:

preg_replace('/<a.*?>/i', '', $link);
preg_replace('/<\/a>/i', '', $link);
echo $link;

但它不起作用。什么都没有被删除。

有人能帮助我吗?

3 个答案:

答案 0 :(得分:3)

最快(可能 - 未经测试):

$t = substr($link, strpos($link, '>') + 1, -4);

最清楚:

$t = strip_tags($link);

带正则表达式的基本条带标签:

$t = preg_replace('/<[^>]*>/', '', $link);

答案 1 :(得分:2)

您需要指定结果:

$link = preg_replace('/<a.*?>/i', '', $link);
$link = preg_replace('/<\/a>/i', '', $link);
echo $link;

答案 2 :(得分:2)

使用此代码将文本与特定正则表达式匹配,而不是替换其他所有内容:

preg_match('/<a.*?>(.+?)<\/a>/i', $link, $matches);

$matches[1]现在将包含您要查找的文字。