<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Domety &#187; 正则表达式</title>
	<atom:link href="http://domety.com/archives/tag/%e6%ad%a3%e5%88%99%e8%a1%a8%e8%be%be%e5%bc%8f/feed/" rel="self" type="application/rss+xml" />
	<link>http://domety.com</link>
	<description>分享软件、互联网应用技巧以及开发技能</description>
	<lastBuildDate>Wed, 26 May 2010 14:28:05 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>自定义more标签的more跳转</title>
		<link>http://domety.com/archives/220/</link>
		<comments>http://domety.com/archives/220/#comments</comments>
		<pubDate>Sun, 10 Jan 2010 14:35:17 +0000</pubDate>
		<dc:creator>DDBug</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[摘要]]></category>
		<category><![CDATA[正则表达式]]></category>

		<guid isPermaLink="false">http://domety.com/?p=220</guid>
		<description><![CDATA[很多主题首页的摘要都是使用the_content()函数来实现的，使用这种方法会在摘要结束的地方自动生成 一个more链接，比如&#8221;阅读更多&#8221;或&#8221;阅读全文&#8221;之类，当你点击这个链接之后会自动跳转到该日志页面摘要之后的部分。如果你喜欢这样的效果，那自然很好，不用修改。但是如果你不喜欢这种效果，而是想跳转到文章最开始的部分，那就继续向下看。
其实我们不难发现，more链接的链接地址就是在日志的链接地址之后加了一个#more-id，我们如果有办法把这个#more-id从链接中去掉不就行了吗？幸好wordpress给我们提供了一个叫做the_content_more_link的filter，通过它再加上正则表达式，可以很轻松的解决这个问题。

function remove_more_jump_link($link) {
return preg_replace('/#more-\d+/i','',$link);
}
add_filter('the_content_more_link', 'remove_more_jump_link');

把以上代码复制到functions.php文件即可。代码中的正则表达式也很好理解，就是把链接中#more-id形式的字符串替换为空。
版权声明: 转载时请以超链接形式标明文章原始出处和作者信息本文来自: Domety&#187;《自定义more标签的more跳转》本文链接: http://domety.com/archives/220/本文作者: DDBug发表时期: 一月 10th,2010关键字: WordPress摘要正则表达式本站的feed地址已经更改为http://feed.domety.com/,请朋友们手动更改一下，谢谢相关文章个性评论头像——图解gravatar全球通用头像为wordpress添加评论邮件回复功能成功升级WordPress到2.8.5正则表达式一般规则升级到wordpress2.9原来如此简单<ul style="color:#808080;padding:10px;border:1px solid #D7D7D7;list-style-type:none;"><li><a href="http://creativecommons.org/licenses/by/3.0/deed.zh">版权声明</a>: 转载时请以超链接形式标明文章原始出处和作者信息</li><li>本文来自: <a href="http://domety.com">Domety</a>&raquo;<a href="http://domety.com/archives/220/">《自定义more标签的more跳转》</a></li><li>本文链接: <a href="http://domety.com/archives/220/" title="自定义more标签的more跳转">http://domety.com/archives/220/</a></li><li>本文作者: <a href="http://domety.com">DDBug</a></li><li>发表时期: 一月 10th,2010</li><li>关键字: <a href="http://domety.com/archives/tag/wordpress/" rel="tag">WordPress</a><a href="http://domety.com/archives/tag/%e6%91%98%e8%a6%81/" rel="tag">摘要</a><a href="http://domety.com/archives/tag/%e6%ad%a3%e5%88%99%e8%a1%a8%e8%be%be%e5%bc%8f/" rel="tag">正则表达式</a></li></ul><p style="color=red">本站的feed地址已经更改为<a href="http://feed.domety.com/">http://feed.domety.com/</a>,请朋友们手动更改一下，谢谢</p><h2>相关文章</h2><ul><li><a href="http://domety.com/archives/210/">wordpress自定义页面</a></li><li><a href="http://domety.com/archives/188/">为wordpress添加阅读RSS功能</a></li><li><a href="http://domety.com/archives/202/">wordpress循环之基础篇</a></li><li><a href="http://domety.com/archives/148/">WordPress性能测试——查看页面生成时间</a></li><li><a href="http://domety.com/archives/213/">正则表达式一般规则</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p>很多主题首页的摘要都是使用the_content()函数来实现的，使用这种方法会在摘要结束的地方自动生成 一个more链接，比如&#8221;阅读更多&#8221;或&#8221;阅读全文&#8221;之类，当你点击这个链接之后会自动跳转到该日志页面摘要之后的部分。如果你喜欢这样的效果，那自然很好，不用修改。但是如果你不喜欢这种效果，而是想跳转到文章最开始的部分，那就继续向下看。</p>
<p>其实我们不难发现，more链接的链接地址就是在日志的链接地址之后加了一个#more-id，我们如果有办法把这个#more-id从链接中去掉不就行了吗？幸好wordpress给我们提供了一个叫做the_content_more_link的filter，通过它再加上正则表达式，可以很轻松的解决这个问题。</p>
<pre>
<div id="_mcePaste">function remove_more_jump_link($link) {</div>
<div id="_mcePaste">return preg_replace('/#more-\d+/i','',$link);</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">add_filter('the_content_more_link', 'remove_more_jump_link');</div>
</pre>
<p>把以上代码复制到functions.php文件即可。代码中的正则表达式也很好理解，就是把链接中#more-id形式的字符串替换为空。</p>
<ul style="color:#808080;padding:10px;border:1px solid #D7D7D7;list-style-type:none;"><li><a href="http://creativecommons.org/licenses/by/3.0/deed.zh">版权声明</a>: 转载时请以超链接形式标明文章原始出处和作者信息</li><li>本文来自: <a href="http://domety.com">Domety</a>&raquo;<a href="http://domety.com/archives/220/">《自定义more标签的more跳转》</a></li><li>本文链接: <a href="http://domety.com/archives/220/" title="自定义more标签的more跳转">http://domety.com/archives/220/</a></li><li>本文作者: <a href="http://domety.com">DDBug</a></li><li>发表时期: 一月 10th,2010</li><li>关键字: <a href="http://domety.com/archives/tag/wordpress/" rel="tag">WordPress</a><a href="http://domety.com/archives/tag/%e6%91%98%e8%a6%81/" rel="tag">摘要</a><a href="http://domety.com/archives/tag/%e6%ad%a3%e5%88%99%e8%a1%a8%e8%be%be%e5%bc%8f/" rel="tag">正则表达式</a></li></ul><p style="color=red">本站的feed地址已经更改为<a href="http://feed.domety.com/">http://feed.domety.com/</a>,请朋友们手动更改一下，谢谢</p><h2>相关文章</h2><ul><li><a href="http://domety.com/archives/152/">自制随机文章插件升级到1.1</a></li><li><a href="http://domety.com/archives/143/">用wordpress 2.8 widget API 制作侧边栏小工具</a></li><li><a href="http://domety.com/archives/206/">添加keywords和description</a></li><li><a href="http://domety.com/archives/195/">wordpress订阅RSS最新方法</a></li><li><a href="http://domety.com/archives/224/">the_content是如何输出摘要和全文的</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://domety.com/archives/220/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>公布本站首页缩略图方法</title>
		<link>http://domety.com/archives/217/</link>
		<comments>http://domety.com/archives/217/#comments</comments>
		<pubDate>Sun, 10 Jan 2010 07:47:22 +0000</pubDate>
		<dc:creator>DDBug</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[图片处理]]></category>
		<category><![CDATA[正则表达式]]></category>

		<guid isPermaLink="false">http://domety.com/?p=217</guid>
		<description><![CDATA[本文利用正则表达式查找文章内的图片信息，并在首页显示第一张图片的缩略图。效果请参看 http://domety.com 主页。
页面中的图片格式为&#60;img &#8230; src=&#8221;图片链接&#8221; &#8230; /&#62;，查找此种格式的正则表达式有多种写法，下面是其中一种
&#60;img\s+.*?src=[\'"]?(.+?)[\'"]?(\s+.*?)?\/\s*&#62;
(.+?)中匹配的就是图片链接的地址。然后调用preg_match_all函数
preg_match_all('/&#60;img\s+.*?src=[\'"]?(.+?)[\'"]?(\s+.*?)?\/\s*&#62;/si', $content, $strResult, PREG_PATTERN_ORDER);
数组$strResult[1]中就保存了所有的图片链接(正则表达式中第一个括号中的匹配内容)，我们可以通过计算数组的大小来得出图片的个数，再对数组进行遍历可以得到每一个图片的链接地址。
以下是本人首页缩略图的代码片段


$content = $post-&#62;post_content;
preg_match_all('/&#60;img\s+.*?src=[\'"]?(.+?)[\'"]?(\s+.*?)?\/\s*&#62;/si', $content, $strResult, PREG_PATTERN_ORDER);
$n = count($strResult[1]);
if($n &#62; 0){
 echo '&#60;div class="thumbnail"&#62;&#60;a href="'.get_permalink().'" title="阅读全文"&#62;&#60;img src="'.$strResult[1][0].'" alt="" /&#62;&#60;br /&#62;阅读全文('.$n.'P)&#60;/a&#62;&#60;/div&#62;';
}
else {
 echo '&#60;div class="thumbnail"&#62;&#60;a href="'.get_permalink().'" title="阅读全文"&#62;&#60;img src="'.get_bloginfo('template_url').'/imgs/default_thumbnail.jpg" alt="" /&#62;&#60;br /&#62;阅读全文(无图)&#60;/a&#62;&#60;/div&#62;';
}


这段代码的大体作用就是：首先获取文章内的图片数量，如果文章内有图片，就用第一张图片作为缩略图，如果没有图片，就使用默认的图片作为缩略图。
以下是css样式，仅供参考


.post .postcontent .thumbnail {
 font-size:12px;
 text-align:center;
 float:right;
 padding-left:12px;
}
.post .postcontent .thumbnail img{
 width:200px;
}


这种显示缩略图方法的好处是显而易见的：我们在写文章的时候无需做额外的操作，网站的备份也简单。但是有一个缺点：因为首页加载了一些图片，会对加载速度产生一定的影响，因此要做好文章里图片的压缩工作。
版权声明: 转载时请以超链接形式标明文章原始出处和作者信息本文来自: Domety&#187;《公布本站首页缩略图方法》本文链接: http://domety.com/archives/217/本文作者: DDBug发表时期: 一月 10th,2010关键字: [...]<ul style="color:#808080;padding:10px;border:1px solid #D7D7D7;list-style-type:none;"><li><a href="http://creativecommons.org/licenses/by/3.0/deed.zh">版权声明</a>: 转载时请以超链接形式标明文章原始出处和作者信息</li><li>本文来自: <a href="http://domety.com">Domety</a>&raquo;<a href="http://domety.com/archives/217/">《公布本站首页缩略图方法》</a></li><li>本文链接: <a href="http://domety.com/archives/217/" title="公布本站首页缩略图方法">http://domety.com/archives/217/</a></li><li>本文作者: <a href="http://domety.com">DDBug</a></li><li>发表时期: 一月 10th,2010</li><li>关键字: <a href="http://domety.com/archives/tag/wordpress/" rel="tag">WordPress</a><a href="http://domety.com/archives/tag/%e5%9b%be%e7%89%87%e5%a4%84%e7%90%86/" rel="tag">图片处理</a><a href="http://domety.com/archives/tag/%e6%ad%a3%e5%88%99%e8%a1%a8%e8%be%be%e5%bc%8f/" rel="tag">正则表达式</a></li></ul><p style="color=red">本站的feed地址已经更改为<a href="http://feed.domety.com/">http://feed.domety.com/</a>,请朋友们手动更改一下，谢谢</p><h2>相关文章</h2><ul><li><a href="http://domety.com/archives/190/">升级到wordpress2.9原来如此简单</a></li><li><a href="http://domety.com/archives/156/">为WorePress管理面板添加自定义菜单选项</a></li><li><a href="http://domety.com/archives/115/">WordPress中自定义你的文章链接</a></li><li><a href="http://domety.com/archives/200/">在feed中加入版权信息以及相关文章</a></li><li><a href="http://domety.com/archives/220/">自定义more标签的more跳转</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p>本文利用正则表达式查找文章内的图片信息，并在首页显示第一张图片的缩略图。效果请参看 <a href="http://domety.com" target="_blank">http://domety.com</a> 主页。</p>
<p>页面中的图片格式为&lt;img &#8230; src=&#8221;图片链接&#8221; &#8230; /&gt;，查找此种格式的正则表达式有多种写法，下面是其中一种</p>
<pre>&lt;img\s+.*?src=[\'"]?(.+?)[\'"]?(\s+.*?)?\/\s*&gt;</pre>
<p>(.+?)中匹配的就是图片链接的地址。然后调用preg_match_all函数</p>
<pre>preg_match_all('/&lt;img\s+.*?src=[\'"]?(.+?)[\'"]?(\s+.*?)?\/\s*&gt;/si', $content, $strResult, PREG_PATTERN_ORDER);</pre>
<p>数组$strResult[1]中就保存了所有的图片链接(正则表达式中第一个括号中的匹配内容)，我们可以通过计算数组的大小来得出图片的个数，再对数组进行遍历可以得到每一个图片的链接地址。<span id="more-217"></span></p>
<p>以下是本人首页缩略图的代码片段</p>
<div id="_mcePaste">
<pre>
<div id="_mcePaste">$content = $post-&gt;post_content;</div>
<div id="_mcePaste">preg_match_all('/&lt;img\s+.*?src=[\'"]?(.+?)[\'"]?(\s+.*?)?\/\s*&gt;/si', $content, $strResult, PREG_PATTERN_ORDER);</div>
<div id="_mcePaste">$n = count($strResult[1]);</div>
<div id="_mcePaste">if($n &gt; 0){</div>
<div id="_mcePaste"><span style="white-space: pre;"> </span>echo '&lt;div class="thumbnail"&gt;&lt;a href="'.get_permalink().'" title="阅读全文"&gt;&lt;img src="'.$strResult[1][0].'" alt="" /&gt;&lt;br /&gt;阅读全文('.$n.'P)&lt;/a&gt;&lt;/div&gt;';</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">else {</div>
<div id="_mcePaste"><span style="white-space: pre;"> </span>echo '&lt;div class="thumbnail"&gt;&lt;a href="'.get_permalink().'" title="阅读全文"&gt;&lt;img src="'.get_bloginfo('template_url').'/imgs/default_thumbnail.jpg" alt="" /&gt;&lt;br /&gt;阅读全文(无图)&lt;/a&gt;&lt;/div&gt;';</div>
<div id="_mcePaste">}</div>
</pre>
</div>
<div>这段代码的大体作用就是：首先获取文章内的图片数量，如果文章内有图片，就用第一张图片作为缩略图，如果没有图片，就使用默认的图片作为缩略图。</div>
<p>以下是css样式，仅供参考</p>
<div>
<pre>
<div>.post .postcontent .thumbnail {</div>
<div><span style="white-space: pre;"> </span>font-size:12px;</div>
<div><span style="white-space: pre;"> </span>text-align:center;</div>
<div><span style="white-space: pre;"> </span>float:right;</div>
<div><span style="white-space: pre;"> </span>padding-left:12px;</div>
<div>}</div>
<div>.post .postcontent .thumbnail img{</div>
<div><span style="white-space: pre;"> </span>width:200px;</div>
<div>}</div>
</pre>
</div>
<p>这种显示缩略图方法的好处是显而易见的：我们在写文章的时候无需做额外的操作，网站的备份也简单。但是有一个缺点：因为首页加载了一些图片，会对加载速度产生一定的影响，因此要做好文章里图片的压缩工作。</p>
<ul style="color:#808080;padding:10px;border:1px solid #D7D7D7;list-style-type:none;"><li><a href="http://creativecommons.org/licenses/by/3.0/deed.zh">版权声明</a>: 转载时请以超链接形式标明文章原始出处和作者信息</li><li>本文来自: <a href="http://domety.com">Domety</a>&raquo;<a href="http://domety.com/archives/217/">《公布本站首页缩略图方法》</a></li><li>本文链接: <a href="http://domety.com/archives/217/" title="公布本站首页缩略图方法">http://domety.com/archives/217/</a></li><li>本文作者: <a href="http://domety.com">DDBug</a></li><li>发表时期: 一月 10th,2010</li><li>关键字: <a href="http://domety.com/archives/tag/wordpress/" rel="tag">WordPress</a><a href="http://domety.com/archives/tag/%e5%9b%be%e7%89%87%e5%a4%84%e7%90%86/" rel="tag">图片处理</a><a href="http://domety.com/archives/tag/%e6%ad%a3%e5%88%99%e8%a1%a8%e8%be%be%e5%bc%8f/" rel="tag">正则表达式</a></li></ul><p style="color=red">本站的feed地址已经更改为<a href="http://feed.domety.com/">http://feed.domety.com/</a>,请朋友们手动更改一下，谢谢</p><h2>相关文章</h2><ul><li><a href="http://domety.com/archives/244/">对所有日志的指定字符串进行替换</a></li><li><a href="http://domety.com/archives/141/">小工具“随机文章”插件制作完成</a></li><li><a href="http://domety.com/archives/212/">wordpress博客搬家过程</a></li><li><a href="http://domety.com/archives/152/">自制随机文章插件升级到1.1</a></li><li><a href="http://domety.com/archives/134/">Wordpress中给文章添加“上一篇 下一篇”功能</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://domety.com/archives/217/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>正则表达式一般规则</title>
		<link>http://domety.com/archives/213/</link>
		<comments>http://domety.com/archives/213/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 13:07:04 +0000</pubDate>
		<dc:creator>DDBug</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[正则表达式]]></category>

		<guid isPermaLink="false">http://domety.com/?p=213</guid>
		<description><![CDATA[正则表达式用于对字符串的查找和替换，有着强大的功能。本文记录了正则表达式的一般规则，以方便查阅。
大部分语言都支持正则表达式，但是不同的语言之间又有那么一点的不同。本文以php支持的正则表达式为例（当然大部分在其它语言也是可以使用的），你在学习的过程中，可以通过本站的正则表达式测试工具进行测试，本工具是基于php制作的。如果你想学习正则表达式，那么请你在阅读本文的时候一定要多动手测试，多思考。
有关本文的一些约定
为了书写方便以及结合php相关函数，本文中使用patten:代表正则表达式，以subject:代表源字符串，以matches:代表查找结果（匹配结果）。
一个简单的正则表达式
在正式开始之前，我想让你知道，其实正则表达式并没有你想像的那么难，只是一些规则而已。我们来看一下如何用正则表达式从源字符中查找一个目标字符串：从domety中查找me
patten:me
subject:domety
你可以用正则表达测试工具测试一下，看一下结果。简单？就这么简单！我们用正则表达的思想来解释一下这个正则表达式(me)的意思：字母m之后紧跟着一个字母e。而源字符串domety中正好也存在这样的字符串，所以匹配的结果就是me。
特殊字符
如果像上面例子中只是简单的查找一个字符串，也就没必要使用正则表达式了。正则表达式之所以强大，还是因为这些特殊字符的存在。
开始和结束(^和$)
字符^代表字符串的开始位置，$代表字符串的结束位置。请注意这两个字符其实并不匹配任何字符，只是一个位置。我们现在把上面的例子改成patten:^me，再测试一下你会发现匹配结果为空。因为^me的意思是：查找以字母m开头，紧接着一个字母e的字符串。如果你把正则表达式改为patten:^do，那么匹配结果就为do。
对于$的理解也是一样，比如do$的意思就是：字符串以字母o结束，并且之前是一个字母d。如果你用do$去匹配domety，结果肯定为空。我们再来看一下这样一个正则表达式：^domety$，它的意思是：以d开头，紧接着一个o，然后是一个m然后是一个e然后是一个t，最后以一个y结束。那么这样一个正则表达式就只匹配domety字符串，如果你想让它去试图匹配domety.com，结果将为空。
字符类([]和[^])
[]代表一个字符类，它之间可以包含无数个字符，但它只匹配其中的一个字符。比如[abc]只匹配a或者b或者c。我们举个例子：[Dd]dbug，它的意思是查找这样一个字符串：一个大写或小写的字母d，紧接着一个字母d然后是一个b然后是一个u然后是一个g。那么它即匹配ddbug又匹配Ddbug。
在字符类中，还支持使用-来代表一个范围，[a-z]匹配所有的小写字母，[0-9]测匹配数字。比如我们想查找&#60;h1&#62;到&#60;h6&#62;的标签
patten:&#60;h[1-6]&#62;
subject:&#60;h1&#62;title1&#62;&#60;/h1&#62;&#60;h2&#62;title2&#60;/h2&#62;&#60;h6&#62;title6&#60;/h6&#62;
那么匹配结果就是h1,h2和h6，你可以亲自测试一下。
这里有一个问题：既然-在字符类代表了范围，那么如果我想在字符类中匹配-怎么呢？简单，只需要把-放在第一个或最后一个位置即可，比如[-a-z]即匹配-又匹配小写字母。
那么[^]是什么意思呢？它匹配不在字符类中的任意一个字符，比如[^a-z]匹配所有非小写字母、[^0-9]匹配所有的非数字字符。
所有字符(.)
字符.可以匹配所有字符，但是在字符类[]中仍然只匹配.，请测试表达式a.c和a[.]c的区别，可以用它们分别匹配abc和a.c做测试，看结果有何不同。
或表达式(&#124;)
&#124;字符的作用有点像字符类[]，都可以匹配多个字符中的任意一个，不过&#124;还可以匹配多个字符串中的任意一个。比如ddbug&#124;domety，即匹配ddbug又匹配domety。再如，“第一”用英文写法可以是first也可以是1st，通过&#124;我们可以很方便的找出first或者1st。我们可以这样写正则表达式：first&#124;1st，也可以写成(fir&#124;1)st。请测试：
patten:(fir&#124;1)st
subject:1st is first
可选(?)
简单的说就是在?之前的字符或表达式可以出现0次或1次，可有可无。比如说表达式ab?c即匹配abc又匹配ac，表达式(ab)?c即匹配c又匹配abc。
重复(+或*)
在+之前的字符或表达式至少要出现一次，可以无限重复。而在*之前的字符或表达式至少出现0次，也可以无限重复。最常用的组合是.+(任意多个任意字符，但至少要有一个字符)和.*（任意多个任意字符，也可以没有任何字符）。比如a.+b匹配a和b之间含有任何字符串的字符串(acb、acdb等)，但是不会匹配ab。而表达式a.*b则匹配ab，这就两者的唯一区别。
上面说的是无限次的重复，还有一种方法是指定重复的次数{min,max}，比如{2}重复两次，{3,9}重复3到9次。表达式ab{3}c匹配abbbc。
转意字符(\)
上面介绍了一些特殊字符，那么如果我们想匹配这些特殊字符应该怎么做呢？比如我想查找0.5+2*3=?这样的字符串，如何写正则表达式？当然不能直接用0.5+2*3=? ，这样一个表达式的意思就成了：一个或多个数字0,随后是一个任意字符，然后是1个或多个数字5,然后接着0个或多个数字2,然后是一个数字3接着0个或多个＝号。
这个时候我就需要使用车转意字符\，把这些特殊字符转换成普通的字符。上面的正则表达式就可以这样写：0\.5\+2\*3=\?，这个表达式就可以匹配字符串0.5+2*3=?
转意字符\不仅可以把特殊字符转化为普通字符，还可以把普通字符转化为特殊字符。比如\d就把一个普通的字符d转化成了一个特殊的含意，它不再匹配字母d，而是匹配所有的数字，它等效于[0-9]。\b则表示单词的边界，这为我们匹配某个单词带来了很大的方便，比如刚开始的例子中表达式do可以匹配domety，但是如果我们想查找do这个单词呢？就可以把表达式改成\bdo\b，这样再测试一下，你会发现它不在匹配domety,而可以匹配just do it，因为在这个字符串中do是一个单词。
常用的还有,\s代表空白字符(包括空格、制表符tab、回车符、换行符等)，\w代表字母或者数字([a-zA-Z0-9])。\D代表非数字字符，\W代表非字符和数字的字符，\S代表非空白字符。
模式
一、忽略大小写(i)
当我们查找的字符串不需要区分大小写的时候，就可以使用忽略大小写的模式i，该模式的表达式结构为：(?i:)。比如表达式(?i:domety)可以匹配domety、DOMETY、Domety、DOmety等。除了这样写以外，还可以使用语言自带的方式，以php的preg_match为例：preg_match(&#8216;/domety/i&#8217;,'Domety&#8217;);
二、单行模式(s)
单行模式的原名叫&#8221;dot-matches-all&#8221;，意思是.匹配所有字符。也许你要问了:点本来不就是匹配所有字符的吗？基本上说是的，但是它不会去匹配换行符。表达式.+一次只能匹配一行，如果你的字符串有两行的话，它会匹配两次。而使用单行模式，.的意义真正的是匹配所有字符，包括换行符。
单行模式的表达式结构为：(?s:)。比如表达式(?s:.+)一次就可以匹配所有的字符串，不管你的字符串有多少行。
三、多行模式
多行模式的原名叫&#8221;enhanced line-anchor&#8221;，它可以使^匹配任意一行字符串开始的位置，使$匹配任意一行字符串结束的位置，而不是整个字符串的开始和结束位置。
四、原义字符
前面我们说过，如果想要匹配一些特殊字符的时候，需要先使用转义字符把这些字符转换成普通字符。不过，除了这一种方法之外，还有一种方法，就是把表达式写在\Q和\E之间。表达式：\Q0.5+2*3=?\E 可以完美的匹配字符串0.5+2*3=?
括号和引用
在前面的例子中，你肯定看到了()的用法，它可以对表达式进行分组，但还有另一个作用，就是()中的匹配结果已经被默默的保存到了一些“变量”中。这些“变量”的格式为\num，比如\1,\2,\3等。我们称这些“变量”为“反向引用”，我还是习惯把它们叫作“变量”。变量\1的值等于表达式中第一个括弧匹配的结果，\2的值等于第二个括弧匹配的结果，以此类推。
比如有这样一个正则表达式：(\w+)\s(\w+)，它的意思是匹配以空白字符隔开的两个字符串，如果用它去匹配&#8221;ddbug domety&#8220;，那么\1的值就是ddbug，而\2的值为domety。
如果我们在正则表达式中使用这些变量，就会有很神奇的效果。最常见的一个例子是查找两个连续重复的单词，表达式是这样的：(\b\w+\b)\s\1。这里我就不举例说明具体的使用方法了，你可以用它去匹配任意两个继续的单词，看一下效果。最后再注意这个表达式和(\b\w+\b)\s(\b\w+\b)的区别。变量中保存的是一个实际的字符串，而不是表达式。
变量的数字顺序是按照左括弧(出现的顺序定义的。考虑这样一个表达式:(ddbug (in) (domety))，请问\1,\2,\3保存的值分别为多少？给你一分钟时间考虑。
你是不是想回答\1=ddbug in domety,\2=in,\3=domety。你能这样回答已经算是掌握了后向引用的含意，但是这个回答是不正确的。为什么呢？我前面说过，这些变量保存的值是匹配结果，而不是表达本身。这个表达式还没有去匹配任何字符串，怎么会有结果呢。如果使用这个表达式去匹配ddbug in domety这样一个字符串，那么你的回答就是完全正确的。如果去匹配其它字符串，比如welcome to domety，那么变量的值就为空。
向左看 向右看
最后再介绍两个有点绕口的表达式，英文原名为lookahead和lookbehind，签于大家对向前和向后有不同的理解，我在这里把它们称作向右和向左。表达式的格式为：向右：(?=),向左(?&#60;=)。应该怎么理解它们呢，它们不匹配任何字符，而是匹配一个位置。
比如我们只想查找domety中的do，可以这样写表达式:(?=domety)do。这个表达式的意思是：首先是一个位置，站在该位置向右看，可以看到domety,然后紧接着do。如果你用这个表达式去匹配domety,自然能成功，但是如果你用这个表达式去匹配字符串just do it，则会失败。因为该字符串中不存在这样一个位置。相反，如果我们想查找所有不在domety中的do,可以这样写表达式(?!domety)do，它的意思是：首先是一个位置，站在该位置向右看，看不到domety,然后紧接着do。该表达式可以匹配just do it但是不能匹配domety。
我们再来结合着向左看来查找domety中的me,表达式为：(?&#60;=do)me(?=ty)，它的意思是：首先是一个位置，该位置的左边是do，然后接着是me，然后又是一个位置，该位置的右边是ty。另外，(?&#60;!)的意思相反，就是该位置的左边不是什么什么。
以上就是DDBug这一个星期来的学习总结，完成本文用时两天，在写作的过程对每一个正则表达式都经过反复的测试，确保正确。如果你对正则表达感兴趣，希望本文对你有所帮助。本文只是正则表达式一般的规则，也可以说是常用的规则。更高级的话题将在以后和大家讨论，因为我还没有理解透彻，所以就不在这里误人子弟了。
最后请记住，一定要多动手练习，用正则表达式去解决实际问题。
版权声明: 转载时请以超链接形式标明文章原始出处和作者信息本文来自: Domety&#187;《正则表达式一般规则》本文链接: http://domety.com/archives/213/本文作者: DDBug发表时期: 一月 8th,2010关键字: PHP正则表达式本站的feed地址已经更改为http://feed.domety.com/,请朋友们手动更改一下，谢谢相关文章自定义more标签的more跳转查看页面执行php占用内存情况公布本站首页缩略图方法Windows下搭建apache+mysql+php平台实况直播查看页面执行php占用内存情况<ul style="color:#808080;padding:10px;border:1px solid #D7D7D7;list-style-type:none;"><li><a href="http://creativecommons.org/licenses/by/3.0/deed.zh">版权声明</a>: 转载时请以超链接形式标明文章原始出处和作者信息</li><li>本文来自: <a href="http://domety.com">Domety</a>&raquo;<a href="http://domety.com/archives/213/">《正则表达式一般规则》</a></li><li>本文链接: <a href="http://domety.com/archives/213/" title="正则表达式一般规则">http://domety.com/archives/213/</a></li><li>本文作者: <a href="http://domety.com">DDBug</a></li><li>发表时期: 一月 8th,2010</li><li>关键字: <a href="http://domety.com/archives/tag/php/" rel="tag">PHP</a><a href="http://domety.com/archives/tag/%e6%ad%a3%e5%88%99%e8%a1%a8%e8%be%be%e5%bc%8f/" rel="tag">正则表达式</a></li></ul><p style="color=red">本站的feed地址已经更改为<a href="http://feed.domety.com/">http://feed.domety.com/</a>,请朋友们手动更改一下，谢谢</p><h2>相关文章</h2><ul><li><a href="http://domety.com/archives/167/">Windows下搭建apache+mysql+php平台实况直播</a></li><li><a href="http://domety.com/archives/217/">公布本站首页缩略图方法</a></li><li><a href="http://domety.com/archives/208/">查看页面执行php占用内存情况</a></li><li><a href="http://domety.com/archives/220/">自定义more标签的more跳转</a></li><li><a href="http://domety.com/archives/167/">Windows下搭建apache+mysql+php平台实况直播</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p>正则表达式用于对字符串的查找和替换，有着强大的功能。本文记录了正则表达式的一般规则，以方便查阅。</p>
<p>大部分语言都支持正则表达式，但是不同的语言之间又有那么一点的不同。本文以php支持的正则表达式为例（当然大部分在其它语言也是可以使用的），你在学习的过程中，可以通过本站的<a title="Domety正则表达式在线测试工具" href="http://domety.com/tools/regex/" target="_blank">正则表达式测试工具</a>进行测试，本工具是基于php制作的。如果你想学习正则表达式，那么请你在阅读本文的时候一定要多动手测试，多思考。</p>
<h3>有关本文的一些约定</h3>
<p>为了书写方便以及结合php相关函数，本文中使用patten:代表正则表达式，以subject:代表源字符串，以matches:代表查找结果（匹配结果）。</p>
<h3>一个简单的正则表达式</h3>
<p>在正式开始之前，我想让你知道，其实正则表达式并没有你想像的那么难，只是一些规则而已。我们来看一下如何用正则表达式从源字符中查找一个目标字符串：从domety中查找me</p>
<pre>patten:<span style="color: #ff0000;">me</span>
subject:<span style="color: #339966;">domety</span></pre>
<p>你可以用正则表达测试工具测试一下，看一下结果。简单？就这么简单！我们用正则表达的思想来解释一下这个正则表达式(me)的意思：字母m之后紧跟着一个字母e。而源字符串domety中正好也存在这样的字符串，所以匹配的结果就是me。</p>
<h3>特殊字符</h3>
<p>如果像上面例子中只是简单的查找一个字符串，也就没必要使用正则表达式了。正则表达式之所以强大，还是因为这些特殊字符的存在。</p>
<h4>开始和结束(^和$)</h4>
<p>字符<span style="color: #ff0000;">^</span>代表字符串的开始位置，<span style="color: #ff0000;">$</span>代表字符串的结束位置。请注意这两个字符其实并不匹配任何字符，只是一个位置。我们现在把上面的例子改成patten:^me，再测试一下你会发现匹配结果为空。因为<span style="color: #ff0000;">^me</span>的意思是：查找以字母m开头，紧接着一个字母e的字符串。如果你把正则表达式改为patten:^do，那么匹配结果就为do。</p>
<p>对于<span style="color: #ff0000;">$</span>的理解也是一样，比如<span style="color: #ff0000;">do$</span>的意思就是：字符串以字母o结束，并且之前是一个字母d。如果你用<span style="color: #ff0000;">do$</span>去匹配<span style="color: #339966;">domety</span>，结果肯定为空。我们再来看一下这样一个正则表达式：<span style="color: #ff0000;">^domety$</span>，它的意思是：以d开头，紧接着一个o，然后是一个m然后是一个e然后是一个t，最后以一个y结束。那么这样一个正则表达式就只匹配<span style="color: #339966;">domety</span>字符串，如果你想让它去试图匹配<span style="color: #339966;">domety.com</span>，结果将为空。</p>
<h4>字符类([]和[^])</h4>
<p><span style="color: #ff0000;">[]</span>代表一个字符类，它之间可以包含无数个字符，但它只匹配其中的一个字符。比如[abc]只匹配a或者b或者c。我们举个例子：<span style="color: #ff0000;">[Dd]dbug</span>，它的意思是查找这样一个字符串：一个大写或小写的字母d，紧接着一个字母d然后是一个b然后是一个u然后是一个g。那么它即匹配ddbug又匹配Ddbug。</p>
<p>在字符类中，还支持使用-来代表一个范围，<span style="color: #ff0000;">[a-z]</span>匹配所有的小写字母，<span style="color: #ff0000;">[0-9]</span>测匹配数字。比如我们想查找&lt;h1&gt;到&lt;h6&gt;的标签</p>
<pre>patten:&lt;h[1-6]&gt;
subject:&lt;h1&gt;title1&gt;&lt;/h1&gt;&lt;h2&gt;title2&lt;/h2&gt;&lt;h6&gt;title6&lt;/h6&gt;</pre>
<p>那么匹配结果就是h1,h2和h6，你可以亲自测试一下。</p>
<p>这里有一个问题：既然-在字符类代表了范围，那么如果我想在字符类中匹配-怎么呢？简单，只需要把-放在第一个或最后一个位置即可，比如<span style="color: #ff0000;">[-a-z]</span>即匹配-又匹配小写字母。</p>
<p>那么<span style="color: #ff0000;">[^]</span>是什么意思呢？它匹配不在字符类中的任意一个字符，比如<span style="color: #ff0000;">[^a-z]</span>匹配所有非小写字母、<span style="color: #ff0000;">[^0-9]</span>匹配所有的非数字字符。</p>
<h4>所有字符(.)</h4>
<p>字符<span style="color: #ff0000;">.</span>可以匹配所有字符，但是在字符类<span style="color: #ff0000;">[]</span>中仍然只匹配.，请测试表达式<span style="color: #ff0000;">a.c</span>和<span style="color: #ff0000;">a[.]c</span>的区别，可以用它们分别匹配<span style="color: #339966;">abc</span>和<span style="color: #339966;">a.c</span>做测试，看结果有何不同。</p>
<h4>或表达式(|)</h4>
<p><span style="color: #ff0000;">|</span>字符的作用有点像字符类<span style="color: #ff0000;">[]</span>，都可以匹配多个字符中的任意一个，不过|还可以匹配多个字符串中的任意一个。比如<span style="color: #ff0000;">ddbug|domety</span>，即匹配<span style="color: #339966;">ddbug</span>又匹配<span style="color: #339966;">domety</span>。再如，“第一”用英文写法可以是first也可以是1st，通过<span style="color: #ff0000;">|</span>我们可以很方便的找出first或者1st。我们可以这样写正则表达式：<span style="color: #ff0000;">first|1st</span>，也可以写成<span style="color: #ff0000;">(fir|1)st</span>。请测试：</p>
<pre>patten:(fir|1)st
subject:1st is first</pre>
<h4>可选(?)</h4>
<p>简单的说就是在<span style="color: #ff0000;">?</span>之前的字符或表达式可以出现0次或1次，可有可无。比如说表达式<span style="color: #ff0000;">ab?c</span>即匹配<span style="color: #339966;">abc</span>又匹配<span style="color: #339966;">ac</span>，表达式<span style="color: #ff0000;">(ab)?c</span>即匹配<span style="color: #339966;">c</span>又匹配<span style="color: #339966;">abc</span>。</p>
<h4>重复(+或*)</h4>
<p>在<span style="color: #ff0000;">+</span>之前的字符或表达式至少要出现一次，可以无限重复。而在<span style="color: #ff0000;">*</span>之前的字符或表达式至少出现0次，也可以无限重复。最常用的组合是<span style="color: #ff0000;">.+</span>(任意多个任意字符，但至少要有一个字符)和<span style="color: #ff0000;">.*</span>（任意多个任意字符，也可以没有任何字符）。比如<span style="color: #ff0000;">a.+b</span>匹配a和b之间含有任何字符串的字符串(acb、acdb等)，但是不会匹配ab。而表达式<span style="color: #ff0000;">a.*b</span>则匹配<span style="color: #339966;">ab</span>，这就两者的唯一区别。</p>
<p>上面说的是无限次的重复，还有一种方法是指定重复的次数{min,max}，比如<span style="color: #ff0000;">{2}</span>重复两次，<span style="color: #ff0000;">{3,9}</span>重复3到9次。表达式<span style="color: #ff0000;">ab{3}c</span>匹配<span style="color: #339966;">abbbc</span>。</p>
<h4>转意字符(\)</h4>
<p>上面介绍了一些特殊字符，那么如果我们想匹配这些特殊字符应该怎么做呢？比如我想查找0.5+2*3=?这样的字符串，如何写正则表达式？当然不能直接用<span style="color: #ff0000;">0.5+2*3=? <span style="color: #000000;">，</span></span>这样一个表达式的意思就成了：一个或多个数字0,随后是一个任意字符，然后是1个或多个数字5,然后接着0个或多个数字2,然后是一个数字3接着0个或多个＝号。</p>
<p>这个时候我就需要使用车转意字符<span style="color: #ff0000;">\</span>，把这些特殊字符转换成普通的字符。上面的正则表达式就可以这样写：<span style="color: #ff0000;">0\.5\+2\*3=\?<span style="color: #000000;">，</span></span>这个表达式就可以匹配字符串<span style="color: #339966;">0.5+2*3=?</span></p>
<p>转意字符<span style="color: #ff0000;">\</span>不仅可以把特殊字符转化为普通字符，还可以把普通字符转化为特殊字符。比如<span style="color: #ff0000;">\d</span>就把一个普通的字符d转化成了一个特殊的含意，它不再匹配字母d，而是匹配所有的数字，它等效于[0-9]。<span style="color: #ff0000;">\b</span>则表示单词的边界，这为我们匹配某个单词带来了很大的方便，比如刚开始的例子中表达式<span style="color: #ff0000;">do</span>可以匹配<span style="color: #339966;">domety</span>，但是如果我们想查找do这个单词呢？就可以把表达式改成<span style="color: #ff0000;">\bdo\b</span>，这样再测试一下，你会发现它不在匹配<span style="color: #339966;">domety</span>,而可以匹配<span style="color: #339966;">just do it</span>，因为在这个字符串中do是一个单词。</p>
<p>常用的还有,<span style="color: #ff0000;">\s</span>代表空白字符(包括空格、制表符tab、回车符、换行符等)，<span style="color: #ff0000;">\w</span>代表字母或者数字([a-zA-Z0-9])。<span style="color: #ff0000;">\D</span>代表非数字字符，<span style="color: #ff0000;">\W</span>代表非字符和数字的字符，<span style="color: #ff0000;">\S</span>代表非空白字符。</p>
<h3>模式</h3>
<h4>一、忽略大小写(i)</h4>
<p>当我们查找的字符串不需要区分大小写的时候，就可以使用忽略大小写的模式i，该模式的表达式结构为：(?i:)。比如表达式<span style="color: #ff0000;">(?i:domety)</span>可以匹配<span style="color: #339966;">domety</span>、<span style="color: #339966;">DOMETY</span>、<span style="color: #339966;">Domety</span>、<span style="color: #339966;">DOmety</span>等。除了这样写以外，还可以使用语言自带的方式，以php的preg_match为例：preg_match(&#8216;/domety/i&#8217;,'Domety&#8217;);</p>
<h4>二、单行模式(s)</h4>
<p>单行模式的原名叫&#8221;dot-matches-all&#8221;，意思是.匹配所有字符。也许你要问了:点本来不就是匹配所有字符的吗？基本上说是的，但是它不会去匹配换行符。表达式<span style="color: #ff0000;">.+</span>一次只能匹配一行，如果你的字符串有两行的话，它会匹配两次。而使用单行模式，<span style="color: #ff0000;">.</span>的意义真正的是匹配所有字符，包括换行符。</p>
<p>单行模式的表达式结构为：(?s:)。比如表达式<span style="color: #ff0000;">(?s:.+)</span>一次就可以匹配所有的字符串，不管你的字符串有多少行。</p>
<h4>三、多行模式</h4>
<p>多行模式的原名叫&#8221;enhanced line-anchor&#8221;，它可以使<span style="color: #ff0000;">^</span>匹配任意一行字符串开始的位置，使<span style="color: #ff0000;">$</span>匹配任意一行字符串结束的位置，而不是整个字符串的开始和结束位置。</p>
<h4>四、原义字符</h4>
<p>前面我们说过，如果想要匹配一些特殊字符的时候，需要先使用转义字符把这些字符转换成普通字符。不过，除了这一种方法之外，还有一种方法，就是把表达式写在<span style="color: #ff0000;">\Q</span>和<span style="color: #ff0000;">\E</span>之间。表达式：<span style="color: #ff0000;">\Q0.5+2*3=?\E</span> 可以完美的匹配字符串<span style="color: #339966;">0.5+2*3=?</span></p>
<h3>括号和引用</h3>
<p>在前面的例子中，你肯定看到了<span style="color: #ff0000;">()</span>的用法，它可以对表达式进行分组，但还有另一个作用，就是()中的匹配结果已经被默默的保存到了一些“变量”中。这些“变量”的格式为\num，比如\1,\2,\3等。我们称这些“变量”为“反向引用”，我还是习惯把它们叫作“变量”。变量\1的值等于表达式中第一个括弧匹配的结果，\2的值等于第二个括弧匹配的结果，以此类推。</p>
<p>比如有这样一个正则表达式：<span style="color: #ff0000;">(\w+)\s(\w+)<span style="color: #000000;">，</span></span>它的意思是匹配以空白字符隔开的两个字符串，如果用它去匹配&#8221;<span style="color: #339966;">ddbug domety</span>&#8220;，那么\1的值就是ddbug，而\2的值为domety。</p>
<p>如果我们在正则表达式中使用这些变量，就会有很神奇的效果。最常见的一个例子是查找两个连续重复的单词，表达式是这样的：<span style="color: #ff0000;">(\b\w+\b)\s\1</span>。这里我就不举例说明具体的使用方法了，你可以用它去匹配任意两个继续的单词，看一下效果。最后再注意这个表达式和<span style="color: #ff0000;">(\b\w+\b)\s(\b\w+\b)</span>的区别。变量中保存的是一个实际的字符串，而不是表达式。</p>
<p>变量的数字顺序是按照左括弧(出现的顺序定义的。考虑这样一个表达式:(ddbug (in) (domety))，请问\1,\2,\3保存的值分别为多少？给你一分钟时间考虑。</p>
<p>你是不是想回答\1=ddbug in domety,\2=in,\3=domety。你能这样回答已经算是掌握了后向引用的含意，但是这个回答是不正确的。为什么呢？我前面说过，这些变量保存的值是匹配结果，而不是表达本身。这个表达式还没有去匹配任何字符串，怎么会有结果呢。如果使用这个表达式去匹配ddbug in domety这样一个字符串，那么你的回答就是完全正确的。如果去匹配其它字符串，比如welcome to domety，那么变量的值就为空。</p>
<h3>向左看 向右看</h3>
<p>最后再介绍两个有点绕口的表达式，英文原名为lookahead和lookbehind，签于大家对向前和向后有不同的理解，我在这里把它们称作向右和向左。表达式的格式为：向右：<span style="color: #ff0000;">(?=)</span>,向左<span style="color: #ff0000;">(?&lt;=)</span>。应该怎么理解它们呢，它们不匹配任何字符，而是匹配一个位置。</p>
<p>比如我们只想查找domety中的do，可以这样写表达式:<span style="color: #ff0000;">(?=domety)do</span>。这个表达式的意思是：首先是一个位置，站在该位置向右看，可以看到domety,然后紧接着do。如果你用这个表达式去匹配domety,自然能成功，但是如果你用这个表达式去匹配字符串just do it，则会失败。因为该字符串中不存在这样一个位置。相反，如果我们想查找所有不在domety中的do,可以这样写表达式<span style="color: #ff0000;">(?!domety)do</span>，它的意思是：首先是一个位置，站在该位置向右看，看不到domety,然后紧接着do。该表达式可以匹配just do it但是不能匹配domety。</p>
<p>我们再来结合着向左看来查找domety中的me,表达式为：<span style="color: #ff0000;">(?&lt;=do)me(?=ty)<span style="color: #000000;">，</span></span>它的意思是：首先是一个位置，该位置的左边是do，然后接着是me，然后又是一个位置，该位置的右边是ty。另外，(?&lt;!)的意思相反，就是该位置的左边不是什么什么。</p>
<p>以上就是DDBug这一个星期来的学习总结，完成本文用时两天，在写作的过程对每一个正则表达式都经过反复的测试，确保正确。如果你对正则表达感兴趣，希望本文对你有所帮助。本文只是正则表达式一般的规则，也可以说是常用的规则。更高级的话题将在以后和大家讨论，因为我还没有理解透彻，所以就不在这里误人子弟了。</p>
<p>最后请记住，一定要多动手练习，用正则表达式去解决实际问题。</p>
<ul style="color:#808080;padding:10px;border:1px solid #D7D7D7;list-style-type:none;"><li><a href="http://creativecommons.org/licenses/by/3.0/deed.zh">版权声明</a>: 转载时请以超链接形式标明文章原始出处和作者信息</li><li>本文来自: <a href="http://domety.com">Domety</a>&raquo;<a href="http://domety.com/archives/213/">《正则表达式一般规则》</a></li><li>本文链接: <a href="http://domety.com/archives/213/" title="正则表达式一般规则">http://domety.com/archives/213/</a></li><li>本文作者: <a href="http://domety.com">DDBug</a></li><li>发表时期: 一月 8th,2010</li><li>关键字: <a href="http://domety.com/archives/tag/php/" rel="tag">PHP</a><a href="http://domety.com/archives/tag/%e6%ad%a3%e5%88%99%e8%a1%a8%e8%be%be%e5%bc%8f/" rel="tag">正则表达式</a></li></ul><p style="color=red">本站的feed地址已经更改为<a href="http://feed.domety.com/">http://feed.domety.com/</a>,请朋友们手动更改一下，谢谢</p><h2>相关文章</h2><ul><li><a href="http://domety.com/archives/167/">Windows下搭建apache+mysql+php平台实况直播</a></li><li><a href="http://domety.com/archives/208/">查看页面执行php占用内存情况</a></li><li><a href="http://domety.com/archives/217/">公布本站首页缩略图方法</a></li><li><a href="http://domety.com/archives/220/">自定义more标签的more跳转</a></li><li><a href="http://domety.com/archives/208/">查看页面执行php占用内存情况</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://domety.com/archives/213/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
