| ? | 当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串 "oooo",'o+?' 将匹配单个 "o",而 'o+' 将匹配所有 'o'。 |
| (pattern) | 匹配 pattern 并获取这一匹配。所获取的匹配可以从产生的 Matches 集合得到,在VBScript 中使用 SubMatches 集合,在JScript 中则使用 $0…$9 属性。要匹配圆括号字符,请使用 '\(' 或 '\)'。 |
| [xyz] | 字符集合。匹配所包含的任意一个字符。例如, '[abc]' 可以匹配 "plain" 中的 'a'。 |
| [^xyz] | 负值字符集合。匹配未包含的任意字符。例如, '[^abc]' 可以匹配 "plain" 中的'p'。 |
| . | 匹配除 "\n" 之外的任何单个字符。要匹配包括 '\n' 在内的任何字符,请使用象 '[.\n]' 的模式。 |
$str="测试字符串 aaa aaa@test1.com BBB sare bbb@test2.cn asda";
preg_match_all('/[\w.%-]+@[\w.-]+\.[a-z]{2,4}/i', $str, $matches);
print_r($matches);
处理对象
<?xml version="1.0" encoding="utf-8" ?>
- <rss version="2.0" xmlns:media="http://search.yahoo.com/mrss" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">
- <channel>
- <title>
<![CDATA[
michael-视频搜索-优酷网]]>
</title>
+ <description>
<link>http://www.youku.com</link>
<lastBuildDate>Thu, 04 Aug 2011 08:35:11 +0800</lastBuildDate>
- <image>
<url>http://www.youku.com/index/img/youkulogo.gif</url>
<title>优酷网-中国第一视频网,提供视频播放,视频发布,视频搜索</title>
<link>http://www.youku.com</link>
<description>视频服务平台,提供视频播放,视频发布,视频搜索、视频分享</description>
</image>
- <item>
- <title>
<![CDATA[
迈克尔杰克逊(Michael Jackson)梦幻舞步MJ最强之舞精华]]>
</title>
<link>http://v.youku.com/v_show/id_XMjI5NDYyODY4.html</link>
+ <description>
<itunes:duration>5:59</itunes:duration>
- <itunes:keywords>
<![CDATA[
迈克杰克逊,迈克尔杰克逊,最强之舞,机械舞,太空步,mj,模仿MJ,模仿杰克逊,模仿迈克]]>
</itunes:keywords>
- <author>
<![CDATA[
恋金爱怡]]>
</author>
<size>0</size>
- <publicType>
<![CDATA[
0]]>
</publicType>
<comments>http://v.youku.com/v_show/id_XMjI5NDYyODY4.html#replyLocation</comments>
<pubDate>Mon, 13 Dec 2010 14:39:53 +0800</pubDate>
<guid>http://v.youku.com/v_show/id_XMjI5NDYyODY4.html</guid>
<enclosure type="application/x-shockwave-flash" url="http://player.youku.com/player.php/sid/XMjI5NDYyODY4/v.swf" />
</item>
- <item>
- <title>
<![CDATA[
《20世纪福克斯:极限乔丹》Michael Jordan to the Max 中文字幕]]>
</title>
<link>http://v.youku.com/v_show/id_XMjUzOTg3MDI4.html</link>
- <description>
- <![CDATA[
<a href="http://v.youku.com/v_show/id_XMjUzOTg3MDI4.html"><img src="http://g2.ykimg.com/0100641F464D8EA42E0C94023D5B7A886F035C-7E1A-420F-B7C7-1F0522D061BC" border="0" width="120" height="90" vspace="4" hspace="4" title="《20世纪福克斯:极限乔丹》Michael Jordan to the Max 中文字幕" target="_blank" /></a> <p></p>]]>
</description>
<itunes:duration>46:25</itunes:duration>
- <itunes:keywords>
<![CDATA[
极限乔丹,JORDAN,michael,乔丹]]>
</itunes:keywords>
- <author>
<![CDATA[
木瓜奶好饮]]>
</author>
<size>0</size>
- <publicType>
<![CDATA[
0]]>
</publicType>
<comments>http://v.youku.com/v_show/id_XMjUzOTg3MDI4.html#replyLocation</comments>
<pubDate>Sun, 27 Mar 2011 10:49:41 +0800</pubDate>
<guid>http://v.youku.com/v_show/id_XMjUzOTg3MDI4.html</guid>
<enclosure type="application/x-shockwave-flash" url="http://player.youku.com/player.php/sid/XMjUzOTg3MDI4/v.swf" />
对description中的href链接和image的链接提取的过程中,使用如下方法获得成功。
$str="<a href=\"http://v.youku.com/v_show/id_XMjUzOTg3MDI4.html\"><img src=\"http://g1.ykimg.com/0100641F464D05BF5E15C104C1517F5E85BF8E-FE90-CB06-DA2D-F2A3634EDAE1\" border=\"0\" target=\"_blank\" /></a><p>Michael Jackson迈克尔杰克逊MJ梦幻舞步~机械</p>";
preg_match('/<a href="(.+?)">/',$str,$match);
//print_r($match);
echo 'The link is '.$match[1];
echo "<br>";
preg_match('/src="(.+?)"/',$str,$match2);
echo 'The image is '.$match2[1];
注释:.匹配任意除('\n')字符,?代表非贪婪匹配(默认情况下的匹配为贪婪匹配),在此的"不需要用\作转义,而在字符串中需要\。
浙公网安备 33010602011771号