demo:
<code>$html='<div class="p-img"><a href="url"></a></div><div class="p-img">@@##@@</div>';
preg_match_all('/<div class="p-img">(.*?)<\/div>/', $html, $out);
var_dump($out);
</code>目标字符串$html,希望匹配
利用爬虫从网络上获取到的dom结构,里面有很多的空格和换行,如果想把目标html匹配出来,正则表达式后面需要添加模式修正符号
<code>preg_match_all('/<div class="p-img">(.*?)<\/div>/is', $html, $out);</code>/i 忽略大小写
/s 将字符串视为单行,换行符作为普通字符;
立即学习“PHP免费学习笔记(深入)”;
demo:
<code>$html='<div class="p-img"><a href="url"></a></div><div class="p-img">@@##@@</div>';
preg_match_all('/<div class="p-img">(.*?)<\/div>/', $html, $out);
var_dump($out);
</code>目标字符串$html,希望匹配
利用爬虫从网络上获取到的dom结构,里面有很多的空格和换行,如果想把目标html匹配出来,正则表达式后面需要添加模式修正符号
<code>preg_match_all('/<div class="p-img">(.*?)<\/div>/is', $html, $out);</code>/i 忽略大小写
/s 将字符串视为单行,换行符作为普通字符;
立即学习“PHP免费学习笔记(深入)”;
<code>$html='<div class="p-img"><a href=\'url\'></div><div class="p-img">@@##@@</div>';
preg_match_all('/<div\sclass="p\-img">(.*?)<\/div>/is', $html, $out);
var_dump($out);</code>输出:
<code>array(2) {
[0]=>
array(2) {
[0]=>
string(39) "<div class="p-img"><a href='url'></div>"
[1]=>
string(39) "<div class="p-img">@@##@@</div>"
}
[1]=>
array(2) {
[0]=>
string(14) "<a href='url'>"
[1]=>
string(14) "@@##@@"
}
}</code>要我怎么说呢,你的 $html 里面的 \/ 应该 /,并且 ' 没有转义为 \'
我运行通不过,你知道么,是你语法问题,还是正则的问题?
答案在$html定义哪里。
-号需要转义
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号