日期:2014-05-17  浏览次数:20430 次

一段简单的正则,请教
PHP code
$content = <<<html
<ul class="small">
<li>
<a href="/html5/tag_comment.asp" title="HTML 5">
&lt;!--&gt;</a></li>
<li>
<a href="/html5/tag_doctype.asp">
&lt;!DOCTYPE&gt;</a></li>
html;

$parr = "/href=\"\/html5\/(.*)\"/i";

preg_match_all($parr, $content, $result);
var_dump($result);

匹配到的结果如下 
string(30) "tag_comment.asp" title="HTML 5"
string(15) "tag_doctype.asp"

第一个还包含了 title 属性。 我的本意是只取href属性的值,该怎么做?

------解决方案--------------------
$parr = "/href=\"\/html5\/(.*?)\"/i";



array(2) {
[0]=>
array(2) {
[0]=>
string(29) "href="/html5/tag_comment.asp""
[1]=>
string(29) "href="/html5/tag_doctype.asp""
}
[1]=>
array(2) {
[0]=>
string(15) "tag_comment.asp"
[1]=>
string(15) "tag_doctype.asp"
}
}

------解决方案--------------------
我一直用这个,忘了从哪里找的了。反正我是看不懂,只管用
PHP code

'/<a.*?(?: |\\t|\\r|\\n)?href=[\'"]?(.+?)[\'"]?(?:(?: |\\t|\\r|\\n)+.*?)?>(.+?)<\/a.*?>/sim'