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

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

WBOY
Release: 2016-06-23 14:25:17
Original
1078 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

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


回复讨论(解决方案)

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

$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
Copy after login
Copy after login
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
Copy after login

下面是对$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);
Copy after login
Copy after login
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);
Copy after login
Copy after login
Array
(
[0] => Array
(
[0] => )

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

)

很奇怪。。。我用的chrome,输出如下:
Array(    [0] => Array        (            [0] => 
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