Home >Backend Development >PHP Tutorial >求问一个正则表达式的问题

求问一个正则表达式的问题

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-23 14:25:171127browse

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

$reg="/<img  src="/static/imghwm/default1.png"  data-src="../Images/Album Cover/album_012.jpg"  class="lazy" \s*.*src\s*=\s*[\"|\']?\s*([^ alt="求问一个正则表达式的问题" >\"\']*)/i";


为什么像如下的图像文件地址:
<img  src="/static/imghwm/default1.png"  data-src="../Images/Album Cover/album_012.jpg"  class="lazy"   alt="求问一个正则表达式的问题" >

只能匹配到:
求问一个正则表达式的问题 


回复讨论(解决方案)

正则没错,建议贴出你的代码以供分析。

$reg="/<img  src="/static/imghwm/default1.png"  data-src="../Images/Album Cover/album_012.jpg"  class="lazy" \s*.*src\s*=\s*[\"|\']?\s*([^ alt="求问一个正则表达式的问题" >\"\']*)/i";$s = '<img  src="/static/imghwm/default1.png"  data-src="../Images/Album Cover/album_012.jpg"  class="lazy"   alt="求问一个正则表达式的问题" >';preg_match_all($reg, $s, $m);print_r($m);
Array
(
    [0] => Array
        (
            [0] => 求问一个正则表达式的问题
$url=$_POST['url'];				$rs=parse_url($url);				$main_url=$rs['host'];				$baseurl=substr($url,0,strrpos($url, '/')+1);				$message=file_get_contents($url);				$reg="/<img  src="/static/imghwm/default1.png"  data-src="../Images/Album Cover/album_012.jpg"  class="lazy" \s*.*src\s*=\s*[\"|\']?\s*([^ alt="求问一个正则表达式的问题" >\"\']*)/i";				preg_match_all($reg, $message, $matches);				for($i=0;$i  
下面是对$img_array的处理了,试了一下新浪首页,百度啊什么的,好多图片地址无法匹配出来,最明显的就是图片路径里包含空格的

$reg="/<img  src="/static/imghwm/default1.png"  data-src="../Images/Album Cover/album_012.jpg"  class="lazy" \s*.*src\s*=\s*[\"|\']?\s*([^ alt="求问一个正则表达式的问题" >\"\']*)/i";$s = '<img  src="/static/imghwm/default1.png"  data-src="../Images/Album Cover/album_012.jpg"  class="lazy"   alt="求问一个正则表达式的问题" >';preg_match_all($reg, $s, $m);print_r($m);
Array
(
    [0] => Array
        (
            [0] => 求问一个正则表达式的问题
$reg="/<img  src="/static/imghwm/default1.png"  data-src="../Images/Album Cover/album_012.jpg"  class="lazy" \s*.*src\s*=\s*[\"|\']?\s*([^ alt="求问一个正则表达式的问题" >\"\']*)/i";$s = '<img  src="/static/imghwm/default1.png"  data-src="../Images/Album Cover/album_012.jpg"  class="lazy"   alt="求问一个正则表达式的问题" >';preg_match_all($reg, $s, $m);print_r($m);
Array
(
    [0] => Array
        (
            [0] => 求问一个正则表达式的问题         )

    [1] => Array
        (
            [0] =>  ../Images/Album Cover/album_012.jpg
        )

)

很奇怪。。。我用的chrome,输出如下:
Array(    [0] => Array        (            [0] => 

数组没有完整输出。。后面的括号都没了

通过“查看网页源代码”观看

Statement:
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