如何使用preg match all获取此字符串的链接?
<h3 class='post-title entry-title'>
<a href='http://domain.blogspot.com/2011/03/blog-post_111.html'>Test Post</a>
</h3>
这是我到目前为止所做的
<?php
$string = file_get_contents('http://www.domain.com');
$regex_pattern = "/<h3 class=\'post-title entry-title\'>([^`]*?)<\/h3>/";
unset($matches);
preg_match_all($regex_pattern, $string, $matches);
foreach ($matches[0] as $paragraph) {
echo $paragraph;
echo "<br>";
}
?>
谢谢!
答案 0 :(得分:1)
不要使用正则表达式来解析HTML。使用像DOMDocument这样的DOM解析器。
答案 1 :(得分:0)
也许/href='([^']*)'/gi
有帮助?
创建正则表达式时RegExr是一个不错的工具。但是正则表达式很慢。你可以通过更多的代码和3个函数获得相同的效果:strlen,strpos和substr。那将是如何解决这个问题的最佳版本之一。
尝试
function between ( $before , $after , $subject )
{
$subject = $subject;
$start = strpos ( $subject , $before );
if ( $start !== false )
{
$end = strpos ( $subject , $after , $start );
if ( $end !== false )
{
return substr ( $subject , $start + strlen ( $before ) , $end - ( $start + strlen ( $before ) ) );
};
};
return false;
}