一段简单的正则,请教
PHP code
$content = <<<html
<ul class="small">
<li>
<a href="/html5/tag_comment.asp" title="HTML 5">
<!--></a></li>
<li>
<a href="/html5/tag_doctype.asp">
<!DOCTYPE></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'