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

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

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

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

$reg="/<img \s*.*src\s*=\s*[\"|\']?\s*([^ alt="求问一个正则表达式的问题" >\"\']*)/i";


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

只能匹配到:
  
到空格的时候就终止了?
([^>\"\']*)这个条件应该不包含空格啊?


回复讨论(解决方案)

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

$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);
Array
(
    [0] => Array
        (
            [0] => 求问一个正则表达式的问题         )

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

)

$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 \s*.*src\s*=\s*[\"|\']?\s*([^ alt="求问一个正则表达式的问题" >\"\']*)/i";				preg_match_all($reg, $message, $matches);				for($i=0;$i  
下面是对$img_array的处理了,试了一下新浪首页,百度啊什么的,好多图片地址无法匹配出来,最明显的就是图片路径里包含空格的

$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);
Array
(
    [0] => Array
        (
            [0] => 求问一个正则表达式的问题         )

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

)

是不是我环境设置有问题?你这段代码我拷到文件里运行,结果是空数组。。。

$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);
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