正则疑问:要匹配网页中的图片怎样匹配? /<img .*src=['\"]?([^'\"]+)['\"]?.*>/isU这样子行不? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 /<img .*src=(['\"]?)(.+)\\1.*>/isU['\"]? 匹配0-1个'或"注意向后引用的使用,不能简单的[^'\"]+虽然很怪异,在文件名中出现引号并不是不可能的 <?php$str = "<img src = http://xx.com/a.gif >";preg_match_all("/<img\s+src\s*=\s*[\'\"]?([^\'\">\s]*)[\'\"]?\s*>/isU", $str, $arr);print_r($arr);?> 如果除去<img src="http://aa.com/a.gif>这种情况,这样:<?php$str = "<img src = 'http://xx.com/a.gif' >";preg_match_all("/<img\s+src\s*=\s*([\'\"]?)([^\'\">\s]*)\\1\s*>/isU", $str, $arr);print_r($arr);?> 何必这么麻烦呢,只匹配 <img 和紧接着的一个 > 不就行了。<img[a-z0-9][^>]*>试试这个 to 唠叨:谢谢,不过不考虑这种情况,否则的话正则没法表达了。to zhiin稚鹰:<?php$str = "<img src = http://xx.com/a.gif border=0>";preg_match_all("/<img\s+src\s*=\s*['\"]?([^'\">\s]*)['\"]?\s*.*>/isU", $str, $arr);print_r($arr);?>这样不行。 <?php$str = "<img src = 'http://xx.com/a.gif' border=0 ><img src = 'http://xx.com/a.gif' border=0 ><img src = 'http://xx.com/a.gif' border=0 >";preg_match_all("/<img\s+src\s*=\s*([\'\"]?)([^\'\">\s]*)\\1\s*[^>]*>/i", $str, $arr);print_r($arr);?> 更全面一点的:<?php$str = "<img src = 'http://xx.com/a.gif' border=0 ><img src = b.gif border=0 ><img style = \"padding:2px\" src = \"http://xx.com/a.gif\" border=0 >";preg_match_all("/<img\s+[^>]*\s*src\s*=\s*([\'\"]?)([^\'\">\s]*)\\1\s*[^>]*>/i", $str, $arr);print_r($arr);?> <?$str = "<img ddd src = http://xx.com/a.gif bbddd>";preg_match_all("/<img .*src\s*=\s?(['\"]?)(.+)\\1\s?.*>/isU", $str, $arr);print_r($arr);这个为什么错误? 一个初级的错误解读 php+PostgreSQL 查詢統計問題 mb_convert_encoding()字符串编码的一个问题 get url传值超过长度报错! dede如何开发出像途牛网的日期报价功能? 附件上传的安全性 网友发的关联菜单的代码,怎么不行 请问这句话什么意思? 怎么计算两个时间的相差秒数?能用就立即给分! 请问有什么好用又美观的CGI或PHP的计数器呢?请问下在的地址是什么呢?谢谢! mysql用php怎么分批处理插入?比如前1000条数据处理结束后,再处理1001至2000条,然后再处理2001至3000条……,直到全部处理完毕? 再问一个关于fwrite的问题
注意向后引用的使用,不能简单的[^'\"]+虽然很怪异,在文件名中出现引号并不是不可能的
$str = "<img src = http://xx.com/a.gif >";
preg_match_all("/<img\s+src\s*=\s*[\'\"]?([^\'\">\s]*)[\'\"]?\s*>/isU", $str, $arr);
print_r($arr);
?>
$str = "<img src = 'http://xx.com/a.gif' >";
preg_match_all("/<img\s+src\s*=\s*([\'\"]?)([^\'\">\s]*)\\1\s*>/isU", $str, $arr);
print_r($arr);
?>
<?php
$str = "<img src = http://xx.com/a.gif border=0>";
preg_match_all("/<img\s+src\s*=\s*['\"]?([^'\">\s]*)['\"]?\s*.*>/isU", $str, $arr);
print_r($arr);
?>
这样不行。
$str = "<img src = 'http://xx.com/a.gif' border=0 >
<img src = 'http://xx.com/a.gif' border=0 >
<img src = 'http://xx.com/a.gif' border=0 >";
preg_match_all("/<img\s+src\s*=\s*([\'\"]?)([^\'\">\s]*)\\1\s*[^>]*>/i", $str, $arr);
print_r($arr);
?>
<?php
$str = "<img src = 'http://xx.com/a.gif' border=0 >
<img src = b.gif border=0 >
<img style = \"padding:2px\" src = \"http://xx.com/a.gif\" border=0 >";
preg_match_all("/<img\s+[^>]*\s*src\s*=\s*([\'\"]?)([^\'\">\s]*)\\1\s*[^>]*>/i", $str, $arr);
print_r($arr);
?>
$str = "<img ddd src = http://xx.com/a.gif bbddd>";
preg_match_all("/<img .*src\s*=\s?(['\"]?)(.+)\\1\s?.*>/isU", $str, $arr);
print_r($arr);这个为什么错误?