Maison > développement back-end > tutoriel php > php的preg_match_all()匹配不到指定的字符串求解?

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

WBOY
Libérer: 2016-09-29 09:33:00
original
1593 Les gens l'ont consulté

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>
Copier après la connexion

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

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

答案在$html定义哪里。

-号需要转义

Étiquettes associées:
php
source:php.cn
Article précédent:请问那这个XHR请求为什么在开发者选项里没有Reply XHR菜单呢? Article suivant:php做反向代理,如何把所有请求都指向index.SegmentFault
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Derniers numéros
Rubriques connexes
Plus>
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal