Home  >  Article  >  Backend Development  >  用正则表达式把文字和图片区分开来,该怎么处理

用正则表达式把文字和图片区分开来,该怎么处理

WBOY
WBOYOriginal
2016-06-13 13:49:251211browse

用正则表达式把文字和图片区分开来
从数据库里面取出下列html代码

HTML code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
<p><em>2012春夏婚纱时装周在纽约落下帷幕,VOGUE时尚网献上最全面的权威报道。为你儿时梦幻中春天里的婚礼挑选只属于自己的嫁衣吧!</em></p>
<p>Alvina Valenta的婚纱发布会真是永恒的滴水不漏。2012春夏婚纱发布也同样是件件都无可挑剔,展示的数量虽不多,但2012婚纱的潮流元素几乎都囊括其中。上一季的几何褶裥也要闪现一下。</p>
<p>高贵、幽雅、摩登、复古、华丽、低调、甚至莫名奇妙的甜美清新……这些特点也无一不在Alvina Valenta 2012春夏婚纱系列中显现。这种面面俱到的完美主义究竟是刻意还是无意,无论如何都很完美。</p>
<p> <img  src="http://static.aishang.cn/itemicon/20111012/8a52fa290ae06da4.jpg" alt=" 用正则表达式把文字和图片区分开来,该怎么处理 " ></p>
<p> <img  src="http://static.aishang.cn/itemicon/20111012/5f7298516446aee4.jpg" alt=" 用正则表达式把文字和图片区分开来,该怎么处理 " ></p>
<p> <img  src="http://static.aishang.cn/itemicon/20111012/ae43d4916580016f.jpg" alt=" 用正则表达式把文字和图片区分开来,该怎么处理 " ></p>
<p> <img  src="http://static.aishang.cn/itemicon/20111012/2d2c62d7340b1c5d.jpg" alt=" 用正则表达式把文字和图片区分开来,该怎么处理 " ></p>
<p> <img  src="http://static.aishang.cn/itemicon/20111012/8d419088f69405dd.jpg" alt=" 用正则表达式把文字和图片区分开来,该怎么处理 " ></p>
<p> <img  src="http://static.aishang.cn/itemicon/20111012/0a85c721b25f88ee.jpg" alt=" 用正则表达式把文字和图片区分开来,该怎么处理 " ></p>
<p> <img  src="http://static.aishang.cn/itemicon/20111012/61ba8bb55943f94d.jpg" alt=" 用正则表达式把文字和图片区分开来,该怎么处理 " ></p>
<p> <img  src="http://static.aishang.cn/itemicon/20111012/9dd0274b9e35cf6a.jpg" alt=" 用正则表达式把文字和图片区分开来,该怎么处理 " ></p>
<p> <img  src="http://static.aishang.cn/itemicon/20111012/ae5127da3395ccbd.jpg" alt=" 用正则表达式把文字和图片区分开来,该怎么处理 " ></p>
<p> <img  src="http://static.aishang.cn/itemicon/20111012/0001969b49e5d288.jpg" alt=" 用正则表达式把文字和图片区分开来,该怎么处理 " ></p>
<p> <img  src="http://static.aishang.cn/itemicon/20111012/8932423815d02415.jpg" alt=" 用正则表达式把文字和图片区分开来,该怎么处理 " ></p>
<p> <img  src="http://static.aishang.cn/itemicon/20111012/7da7965ed5435fda.jpg" alt=" 用正则表达式把文字和图片区分开来,该怎么处理 " ></p>
<p> <img  src="http://static.aishang.cn/itemicon/20111012/99fde461bc846891.jpg" alt=" 用正则表达式把文字和图片区分开来,该怎么处理 " ></p>



想取出这些代码之后保存到一个数组里面去,p标签为一个单位的元素。。想达到以下效果:
PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
$arr[0]=>"<em>2012春夏婚纱时装周在纽约落下帷幕,VOGUE时尚网献上最全面的权威报道。为你儿时梦幻中春天里的婚礼挑选只属于自己的嫁衣吧!</em>";
$arr[1]=>"Alvina Valenta的婚纱发布会真是永恒的滴水不漏。2012春夏婚纱发布也同样是件件都无可挑剔,展示的数量虽不多,但2012婚纱的潮流元素几乎都囊括其中。上一季的几何褶裥也要闪现一下。";
$arr[2]=>"高贵、幽雅、摩登、复古、华丽、低调、甚至莫名奇妙的甜美清新……这些特点也无一不在Alvina Valenta 2012春夏婚纱系列中显现。这种面面俱到的完美主义究竟是刻意还是无意,无论如何都很完美。"
$arr[3]=>"http://static.aishang.cn/itemicon/20111012/8a52fa290ae06da4.jpg";  //过滤掉img标签,只取图片的url
$arr[4]=>"http://static.aishang.cn/itemicon/20111012/5f7298516446aee4.jpg";
......



------解决方案--------------------
PHP code

$str = <em>2012春夏婚纱时装周在纽约落下帷幕,VOGUE时尚网献上最全面的权威报道。为你儿时梦幻中春天里的婚礼挑选只属于自己的嫁衣吧!</em>
<p>Alvina Valenta的婚纱发布会真是永恒的滴水不漏。2012春夏婚纱发布也同样是件件都无可挑剔,展示的数量虽不多,但2012婚纱的潮流元素几乎都囊括其中。上一季的几何褶裥也要闪现一下。</p>
<p>高贵、幽雅、摩登、复古、华丽、低调、甚至莫名奇妙的甜美清新……这些特点也无一不在Alvina Valenta 2012春夏婚纱系列中显现。这种面面俱到的完美主义究竟是刻意还是无意,无论如何都很完美。</p>
<p><img  src="http://static.aishang.cn/itemicon/20111012/8a52fa290ae06da4.jpg" alt=" 用正则表达式把文字和图片区分开来,该怎么处理 " ></p>
<p><img  src="http://static.aishang.cn/itemicon/20111012/5f7298516446aee4.jpg" alt=" 用正则表达式把文字和图片区分开来,该怎么处理 " ></p>
<p><img  src="http://static.aishang.cn/itemicon/20111012/ae43d4916580016f.jpg" alt=" 用正则表达式把文字和图片区分开来,该怎么处理 " ></p>
<p><img  src="http://static.aishang.cn/itemicon/20111012/2d2c62d7340b1c5d.jpg" alt=" 用正则表达式把文字和图片区分开来,该怎么处理 " ></p>
<p><img  src="http://static.aishang.cn/itemicon/20111012/8d419088f69405dd.jpg" alt=" 用正则表达式把文字和图片区分开来,该怎么处理 " ></p>
<p><img  src="http://static.aishang.cn/itemicon/20111012/0a85c721b25f88ee.jpg" alt=" 用正则表达式把文字和图片区分开来,该怎么处理 " ></p>
<p><img  src="http://static.aishang.cn/itemicon/20111012/61ba8bb55943f94d.jpg" alt=" 用正则表达式把文字和图片区分开来,该怎么处理 " ></p>
<p><img  src="http://static.aishang.cn/itemicon/20111012/9dd0274b9e35cf6a.jpg" alt=" 用正则表达式把文字和图片区分开来,该怎么处理 " ></p>
<p><img  src="http://static.aishang.cn/itemicon/20111012/ae5127da3395ccbd.jpg" alt=" 用正则表达式把文字和图片区分开来,该怎么处理 " ></p>
<p><img  src="http://static.aishang.cn/itemicon/20111012/0001969b49e5d288.jpg" alt=" 用正则表达式把文字和图片区分开来,该怎么处理 " ></p>
<p><img  src="http://static.aishang.cn/itemicon/20111012/8932423815d02415.jpg" alt=" 用正则表达式把文字和图片区分开来,该怎么处理 " ></p>
<p><img  src="http://static.aishang.cn/itemicon/20111012/7da7965ed5435fda.jpg" alt=" 用正则表达式把文字和图片区分开来,该怎么处理 " ></p>
<p><img  src="http://static.aishang.cn/itemicon/20111012/99fde461bc846891.jpg" alt=" 用正则表达式把文字和图片区分开来,该怎么处理 " ></p>
HTML;
$pat = '/<p>((?:(?:[^|</p><p>.+"(.+)".+/isU';
preg_match_all($pat,$str,$matches);
echo '</p><pre class="brush:php;toolbar:false">';
print_r(array_filter(array_merge($matches[1],$matches[2])));
echo '
'; /* Array ( [0] => 2012春夏婚纱时装周在纽约落下帷幕,VOGUE时尚网献上最全面的权威报道。为你儿时梦幻中春天里的婚礼挑选只属于自己的嫁衣吧! [1] => Alvina Valenta的婚纱发布会真是永恒的滴水不漏。2012春夏婚纱发布也同样是件件都无可挑剔,展示的数量虽不多,但2012婚纱的潮流元素几乎都囊括其中。上一季的几何褶裥也要闪现一下。 [2] => 高贵、幽雅、摩登、复古、华丽、低调、甚至莫名奇妙的甜美清新……这些特点也无一不在Alvina Valenta 2012春夏婚纱系列中显现。这种面面俱到的完美主义究竟是刻意还是无意,无论如何都很完美。 [19] => http://static.aishang.cn/itemicon/20111012/8a52fa290ae06da4.jpg [20] => http://static.aishang.cn/itemicon/20111012/5f7298516446aee4.jpg [21] => http://static.aishang.cn/itemicon/20111012/ae43d4916580016f.jpg [22] => http://static.aishang.cn/itemicon/20111012/2d2c62d7340b1c5d.jpg [23] => http://static.aishang.cn/itemicon/20111012/8d419088f69405dd.jpg [24] => http://static.aishang.cn/itemicon/20111012/0a85c721b25f88ee.jpg [25] => http://static.aishang.cn/itemicon/20111012/61ba8bb55943f94d.jpg [26] => http://static.aishang.cn/itemicon/20111012/9dd0274b9e35cf6a.jpg [27] => http://static.aishang.cn/itemicon/20111012/ae5127da3395ccbd.jpg [28] => http://static.aishang.cn/itemicon/20111012/0001969b49e5d288.jpg [29] => http://static.aishang.cn/itemicon/20111012/8932423815d02415.jpg [30] => http://static.aishang.cn/itemicon/20111012/7da7965ed5435fda.jpg [31] => http://static.aishang.cn/itemicon/20111012/99fde461bc846891.jpg ) */
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