2010-09-17 24 views

回答

2
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 
} 

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

编辑:注意到,你想匹配所有的URL,因此改为preg_match_all

preg_match_all

+0

其实,我在寻找一个特定关键字的实例。 '基石' - 也许最简单的方法是排序所有的URL,然后尝试找到包含基石的部分作为锚文本的一部分? – 2010-09-17 19:18:32

+0

在这种情况下,模式变成'#] *>([^ < – AlexJF 2010-09-17 19:47:14

相关问题