$content =<<< TEXT
<tr bgcolor="#F5F3F3"><td height="20"><b>【作 者】</b></td><td><a href="/search/search.php?vname=" target="_blank" title="赵晓波、王晓芬">赵晓波、王晓芬</a></td></tr>
TEXT;
$pattern = "/【作 者】.+>(.+)<\/a>/s";
preg_match($pattern, $content, $authors);print_r($authors);
Array
(
[0] => 【作 者】</b></td><td><a href="/search/search.php?vname=" target="_blank" title="赵晓波、王晓芬">赵晓波、王晓芬</a>
[1] => 赵晓波、王晓芬
)
<tr bgcolor="#F5F3F3"><td height="20"><b>【作 者】</b></td><td><a href="/search/search.php?vname=" target="_blank" title="赵晓波、王晓芬">赵晓波、王晓芬</a></td></tr>
TEXT;
$pattern = "/【作 者】.+>(.+)<\/a>/s";
preg_match($pattern, $content, $authors);print_r($authors);
Array
(
[0] => 【作 者】</b></td><td><a href="/search/search.php?vname=" target="_blank" title="赵晓波、王晓芬">赵晓波、王晓芬</a>
[1] => 赵晓波、王晓芬
)
可能是我没有举完整的例子,你的那段代码在上面的数据中是正确的,但是当数据多了其它的内容时就不行了,比如“
$content =<<< TEXT
<tr bgcolor="#F5F3F3"><td height="20"><b>【作 者】</b></td><td><a href="/prodsearch/prodsearch.asp?vname=%B0%B2%CF%FE%B2%A8%A1%A2%CD%F5%CF%FE%B7%D2&uid=qwsgqifopsg7mga5m7gs5sugu" target="_blank" title="安晓波、王晓芬">安晓波、王晓芬</a></td></tr><tr bgcolor="#FFFFFF"><td height="20"><b>【出 版 社】</b></td><td><a href="/prodsearch/prodsearch.asp?vname=%BB%AF%D1%A7%B9%A4%D2%B5%B3%F6%B0%E6%C9%E7&uid=qwsgqifopsg7mga5m7gs5sugu" target="_blank" title="化学工业出版社">化学工业出版社</a></td></tr>
TEXT;我的环境是PHP Version 4.3.2,Apache2 Windows2000
我试了这样:
$pattern = "/【作 者】[^(<\/a>)]+<\/a>/s";
也不行。