demo:
$html='<div class="p-img"><a href="url"></a></div><div class="p-img"><img src="xx"></div>';
preg_match_all('/<div class="p-img">(.*?)<\/div>/', $html, $out);
var_dump($out);
目标字符串$html,希望匹配<div class="p-img">,发现最后输出的$out是一直是empty,如何才能正确的匹配所有的结果,求正则高手指点
找到答案之后的补充说明:
利用爬虫从网络上获取到的dom结构,里面有很多的空格和换行,如果想把目标html匹配出来,正则表达式后面需要添加模式修正符号
preg_match_all('/<div class="p-img">(.*?)<\/div>/is', $html, $out);
/i 忽略大小写
/s 将字符串视为单行,换行符作为普通字符;
输出:
要我怎么说呢,你的 $html 里面的
\/
应该/
,并且'
没有转义为\'
我运行通不过,你知道么,是你语法问题,还是正则的问题?