php的preg_match_all()匹配不到指定的字符串求解?

WBOY
Lepaskan: 2016-09-29 09:33:00
asal
1566 orang telah melayarinya

demo:

<code>$html='<div class="p-img"><a href="url"></a></div>
<div class="p-img"><img  src="xx" alt="php的preg_match_all()匹配不到指定的字符串求解?" ></div>';

preg_match_all('/<div class="p-img">(.*?)/', $html, $out);

var_dump($out);

<p>目标字符串$html,希望匹配</p>
<div class="p-img">,发现最后输出的$out是一直是empty,如何才能正确的匹配所有的结果,求正则高手指点
<hr>
<h3>找到答案之后的补充说明:</h3>
<p>利用爬虫从网络上获取到的dom结构,里面有很多的空格和换行,如果想把目标html匹配出来,正则表达式后面需要添加模式修正符号</p>
<pre class="brush:php;toolbar:false"><code>preg_match_all('/<div class="p-img">(.*?)/is', $html, $out);
<p>/i  忽略大小写</p>
<p>/s  将字符串视为单行,换行符作为普通字符;</p>

                            
                        


                                                                                                                        
                     <h2>回复内容:</h2>
                      
                                                            
<p>demo:</p>
<pre class="brush:php;toolbar:false"><code>$html='<div class="p-img"><a href="url"></a></div>
<div class="p-img"><img  src="xx" alt="php的preg_match_all()匹配不到指定的字符串求解?" ></div>';

preg_match_all('/<div class="p-img">(.*?)/', $html, $out);

var_dump($out);

<p>目标字符串$html,希望匹配</p>
<div class="p-img">,发现最后输出的$out是一直是empty,如何才能正确的匹配所有的结果,求正则高手指点
<hr>
<h3>找到答案之后的补充说明:</h3>
<p>利用爬虫从网络上获取到的dom结构,里面有很多的空格和换行,如果想把目标html匹配出来,正则表达式后面需要添加模式修正符号</p>
<pre class="brush:php;toolbar:false"><code>preg_match_all('/<div class="p-img">(.*?)/is', $html, $out);
<p>/i  忽略大小写</p>
<p>/s  将字符串视为单行,换行符作为普通字符;</p>

                            
                        
            <p class="answer fmt" data-id="1020000007037958">
                                    
</p>
<pre class="brush:php;toolbar:false"><code>$html='<div class="p-img"><a href="%5C'url%5C'"></a></div>
<div class="p-img"><img  src="%5C'xx%5C'" alt="php的preg_match_all()匹配不到指定的字符串求解?" ></div>';

preg_match_all('/<div>(.*?)/is', $html, $out);

var_dump($out);
<p>输出:</p>
<pre class="brush:php;toolbar:false"><code>array(2) {
  [0]=>
  array(2) {
    [0]=>
    string(39) "<div class="p-img"><a href="url"></a></div>"
    [1]=>
    string(39) "<div class="p-img"><img  src="xx" alt="php的preg_match_all()匹配不到指定的字符串求解?" ></div>"
  }
  [1]=>
  array(2) {
    [0]=>
    string(14) "<a href="url">"
    [1]=>
    string(14) "<img  src="xx" alt="php的preg_match_all()匹配不到指定的字符串求解?" >"
  }
}</a></code>
Salin selepas log masuk

要我怎么说呢,你的 $html 里面的 \/ 应该 /,并且 ' 没有转义为 \'

我运行通不过,你知道么,是你语法问题,还是正则的问题?

答案在$html定义哪里。

-号需要转义

Label berkaitan:
php
sumber:php.cn
Artikel sebelumnya:请问那这个XHR请求为什么在开发者选项里没有Reply XHR菜单呢? Artikel seterusnya:php做反向代理,如何把所有请求都指向index.SegmentFault
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Isu terkini
Topik-topik yang berkaitan
Lagi>
Cadangan popular
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!