上面那个正则表达式匹配的问题解决了

WBOY
Release: 2016-06-23 14:25:17
Original
955 people have browsed it

找到原因了,但是原帖无法回复,也无法修改

总结一下吧:
想匹配一个网页地址中的所有图像地址,写了正则表达式如下:

$reg="/<img \s*.*src\s*=\s*[\"|\']?\s*([^ alt="上面那个正则表达式匹配的问题解决了" >\"\']*)/i";
Copy after login

为什么像如下的图像文件地址:
<img  src="../Images/Album Cover/album_012.jpg" alt="上面那个正则表达式匹配的问题解决了" >
Copy after login

只能匹配到:
  


原因是浏览器。。。我用的chrome
$reg="/<img \s*.*src\s*=\s*[\"|\']?\s*([^ alt="上面那个正则表达式匹配的问题解决了" >\"\']*)/i";$s = '<img  src="../Images/Album Cover/album_012.jpg" alt="上面那个正则表达式匹配的问题解决了" >';preg_match_all($reg, $s, $m);print_r($m);
Copy after login


运行后输出:
Array(    [0] => Array        (            [0] => 
Copy after login


chrome把后面的
<img  src="../Images/Album Cover/album_012.jpg        )    [1] = alt="上面那个正则表达式匹配的问题解决了" > Array        (            [0] => ../Images/Album Cover/album_012.jpg        ))
Copy after login

全删掉了!而且是在源代码中,也就是看最后的网页源代码也看不到这一段!换了firefox,上面的这段直接在网页上也看不到,看源代码可以找到这一段,而且是用红色标记的,这果断是逼我换firefox嘛?


回复讨论(解决方案)

....
echo '

';  <br> print_r($m);  <p class="sougouAnswer">  ....  <br> echo '</p><pre class="brush:php;toolbar:false">';  <br> print_r($m);  <br> 加了<pre class="brush:php;toolbar:false">的,就是输出上面那个结果,应该是chrome的安全保护措施吧,把结果中的不良代码删掉了,不信你可以换个chrome试试,我的chrome版本是 29.0.1541.0  <br>  <br> 果断换firefox了  <p class="sougouAnswer">  试了下,好像是那么回事。那就用firefox吧。 </p>
Copy after login
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template