我想匹配出http://www.so.com/s?q=csdn&pn=7&j=0里每个搜索结果的url,用下面的正则匹配出的结果为空,错在哪里呢?
$c1 = "/<h3 class=\"res-title (?:\-nowrap)?\">\s*<a target=\"_blank\" data-m=\"(?:.*)\" data-pos\"(?:\d+)\" data-e=\"(?:\d+)\" data-st=\"(?:\d+)\" href=\"(.*)\">(?:.*)<\/a>\s*<\/h3>/Uis";
$content= get_content('http://www.so.com/s?q=csdn&pn=7&j=0');
preg_match_all($c1,$content,$arr1);
print_r($arr1);正则表达式php匹配
$c1 = "/<h3 class=\"res-title (?:\-nowrap)?\">\s*<a target=\"_blank\" data-m=\"(?:.*)\" data-pos\"(?:\d+)\" data-e=\"(?:\d+)\" data-st=\"(?:\d+)\" href=\"(.*)\">(?:.*)<\/a>\s*<\/h3>/Uis";
$content= get_content('http://www.so.com/s?q=csdn&pn=7&j=0');
preg_match_all($c1,$content,$arr1);
print_r($arr1);正则表达式php匹配
$urls = 'http://www.so.com/s?q=csdn&pn=7&j=0';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$urls);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$content = curl_exec($ch);
curl_close($ch);
$c1 = "/<li class=\"res-list\">(.*?)<a href=\"(.*?)\">(.*?)<\/a>(.*?)<\/li>/is";
preg_match_all($c1,$content,$arr1);
foreach($arr1[0] as $part){
$c2 = "/href=('|\")(.*?)(?1)\s+/is";
preg_match_all($c2,$part,$arr2);
echo $arr2[2][0].'<br />';
}