﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-lynch-随笔分类-linux</title><link>http://www.cppblog.com/lynch/category/17490.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 05 Jul 2013 12:53:04 GMT</lastBuildDate><pubDate>Fri, 05 Jul 2013 12:53:04 GMT</pubDate><ttl>60</ttl><item><title>统计代码行数</title><link>http://www.cppblog.com/lynch/archive/2012/12/16/196343.html</link><dc:creator>董三</dc:creator><author>董三</author><pubDate>Sat, 15 Dec 2012 16:18:00 GMT</pubDate><guid>http://www.cppblog.com/lynch/archive/2012/12/16/196343.html</guid><wfw:comment>http://www.cppblog.com/lynch/comments/196343.html</wfw:comment><comments>http://www.cppblog.com/lynch/archive/2012/12/16/196343.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/lynch/comments/commentRss/196343.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/lynch/services/trackbacks/196343.html</trackback:ping><description><![CDATA[<span style="word-wrap: break-word; font-family: 'Times New Roman'; line-height: 18.200000762939453px; white-space: pre;">	</span><span style="font-family: 'Times New Roman'; line-height: 18.200000762939453px;">在我们平时写代码过程中，有时候想知道我们完成的程序到底有多少行代码（据说很多面试的童鞋会被面试官问到这个问题）。在这里，我分享一下我自己统计代码的方法。</span><div style="word-wrap: break-word; font-family: 'Times New Roman'; line-height: 18.200000762939453px;"><span style="word-wrap: break-word; white-space: pre;">	</span>我们这里以统计&#8220;.h&#8221;和&#8220;.cpp&#8221;为后缀的源码文件为例，但是同样可以用于统计&#8220;.hpp&#8221;、&#8220;.cc&#8221;、&#8220;.c&#8221;、&#8220;.py&#8221;、&#8220;.java&#8221;、&#8220;.html&#8221;等所有后缀名文件。</div><div style="word-wrap: break-word; font-family: 'Times New Roman'; line-height: 18.200000762939453px;"><span style="word-wrap: break-word; white-space: pre;">	</span>首先看一下目录结构</div><div style="word-wrap: break-word; font-family: 'Times New Roman'; line-height: 18.200000762939453px;"><a href="http://blog.chinaunix.net/attachment/201212/15/24782829_1355586341P7ax.jpg" style="word-wrap: break-word;"><span style="word-wrap: break-word; white-space: pre;">	<img src="http://www.cppblog.com/images/cppblog_com/lynch/8.jpg" border="0" alt="" width="318" height="213" /></span></a></div><div style="word-wrap: break-word; font-family: 'Times New Roman'; line-height: 18.200000762939453px;"><span style="word-wrap: break-word; white-space: pre;">	</span>要统计代码行数，我们需要用到wc命令。&#8220;wc -l filename&#8221;可以用来统计filename的行数。比如</div><div id="codeText" style="word-wrap: break-word; border: 1px solid #dddddd; width: 645.816650390625px; overflow: auto; margin: 0px 0px 1.1em; word-break: break-all; background-color: #ffffff; font-size: 12px; line-height: normal; font-family: Consolas, monospace;"><ol start="1" style="word-wrap: break-word; margin: 0px 1px 0px 0px; color: #5c5c5c; line-height: 1.3; padding: 5px 0pt;"><li style="word-wrap: break-word; padding-left: 10px;"><span style="word-wrap: break-word; color: #000000; white-space: pre;">	</span>wc&nbsp;<span style="word-wrap: break-word; color: #0000cc;">-</span>l test<span style="word-wrap: break-word; color: #0000cc;">.</span>cpp</li></ol></div><span style="word-wrap: break-word; font-family: 'Times New Roman'; line-height: 18.200000762939453px; white-space: pre;">	<img src="http://www.cppblog.com/images/cppblog_com/lynch/9.jpg" border="0" alt="" width="383" height="65" /></span><br style="word-wrap: break-word; font-family: 'Times New Roman'; line-height: 18.200000762939453px;" /><div style="word-wrap: break-word; font-family: 'Times New Roman'; line-height: 18.200000762939453px;"><span style="word-wrap: break-word; white-space: pre;">	</span>要统计所有的&#8220;.h&#8221;和".cpp"的文件行数，还需要使用find命令。</div><div style="word-wrap: break-word; font-family: 'Times New Roman'; line-height: 18.200000762939453px;"></div><div style="word-wrap: break-word; font-family: 'Times New Roman'; line-height: 18.200000762939453px;"><strong style="word-wrap: break-word;">方法一：</strong></div><div style="word-wrap: break-word; font-family: 'Times New Roman'; line-height: 18.200000762939453px;"><span style="word-wrap: break-word; white-space: pre;">	</span>分别统计&#8220;.h&#8221;和&#8220;.cpp&#8221;的行数，再把它们加起来。</div><div id="codeText" style="word-wrap: break-word; border: 1px solid #dddddd; width: 645.816650390625px; overflow: auto; margin: 0px 0px 1.1em; word-break: break-all; background-color: #ffffff; font-size: 12px; line-height: normal; font-family: Consolas, monospace;"><ol start="1" style="word-wrap: break-word; margin: 0px 1px 0px 0px; color: #5c5c5c; line-height: 1.3; padding: 5px 0pt;"><li style="word-wrap: break-word; padding-left: 10px;"><span style="word-wrap: break-word; color: #000000; white-space: pre;">	</span>wc&nbsp;<span style="word-wrap: break-word; color: #0000cc;">-</span>l `find&nbsp;<span style="word-wrap: break-word; color: #0000cc;">.</span>&nbsp;<span style="word-wrap: break-word; color: #0000cc;">-</span>name&nbsp;<span style="word-wrap: break-word; color: #ff00ff;">'*.h'</span><span style="word-wrap: break-word; color: #ff00ff;">`</span><span style="word-wrap: break-word; color: #ff00ff;">;</span>&nbsp;wc&nbsp;<span style="word-wrap: break-word; color: #0000cc;">-</span>l `find&nbsp;<span style="word-wrap: break-word; color: #0000cc;">.</span>&nbsp;<span style="word-wrap: break-word; color: #0000cc;">-</span>name&nbsp;<span style="word-wrap: break-word; color: #ff00ff;">'*.cpp'</span><span style="word-wrap: break-word; color: #ff00ff;">`</span></li></ol></div><div style="word-wrap: break-word; font-family: 'Times New Roman'; line-height: 18.200000762939453px;"><span style="word-wrap: break-word; white-space: pre;">	</span>结果如下：<span style="word-wrap: break-word; white-space: pre;">	</span></div><div style="word-wrap: break-word; font-family: 'Times New Roman'; line-height: 18.200000762939453px;"><a href="http://blog.chinaunix.net/attachment/201212/15/24782829_1355587046Xr1x.jpg" style="word-wrap: break-word;"><span style="word-wrap: break-word; white-space: pre;">	<img src="http://www.cppblog.com/images/cppblog_com/lynch/10.jpg" border="0" alt="" width="728" height="167" /></span></a></div><div style="word-wrap: break-word; font-family: 'Times New Roman'; line-height: 18.200000762939453px;"><span style="word-wrap: break-word; white-space: pre;">	</span>虽然得到了结果，但是&#8220;.h&#8221;、&#8220;.cpp&#8221;代码行数是分别统计的。</div><div style="word-wrap: break-word; font-family: 'Times New Roman'; line-height: 18.200000762939453px;"><strong style="word-wrap: break-word;">方法二：</strong></div><div style="word-wrap: break-word; font-family: 'Times New Roman'; line-height: 18.200000762939453px;"><span style="word-wrap: break-word; color: #333333; font-family: Georgia, 'Times New Roman', Times, sans-serif; line-height: 25px; background-color: #ffffff;"><span style="word-wrap: break-word; white-space: pre;">	</span>使用-or命令连接多个表达式。</span></div><div id="codeText" style="word-wrap: break-word; border: 1px solid #dddddd; width: 645.816650390625px; overflow: auto; margin: 0px 0px 1.1em; word-break: break-all; background-color: #ffffff; font-size: 12px; line-height: normal; font-family: Consolas, monospace;"><ol start="1" style="word-wrap: break-word; margin: 0px 1px 0px 0px; color: #5c5c5c; line-height: 1.3; padding: 5px 0pt;"><li style="word-wrap: break-word; padding-left: 10px;"><span style="word-wrap: break-word; color: #000000; white-space: pre;">	</span>wc&nbsp;<span style="word-wrap: break-word; color: #0000cc;">-</span>l `find&nbsp;<span style="word-wrap: break-word; color: #0000cc;">.</span>&nbsp;<span style="word-wrap: break-word; color: #0000cc;">-</span>name&nbsp;<span style="word-wrap: break-word; color: #ff00ff;">'*.h'</span>&nbsp;<span style="word-wrap: break-word; color: #0000cc;">-</span><span style="word-wrap: break-word; color: #0000ff;">or</span>&nbsp;<span style="word-wrap: break-word; color: #0000cc;">-</span>name&nbsp;<span style="word-wrap: break-word; color: #ff00ff;">'*.cpp'</span><span style="word-wrap: break-word; color: #ff00ff;">`</span></li></ol></div><div style="word-wrap: break-word; font-family: 'Times New Roman'; line-height: 18.200000762939453px;"><span style="word-wrap: break-word; white-space: pre;">	</span>结果如下：</div><div style="word-wrap: break-word; font-family: 'Times New Roman'; line-height: 18.200000762939453px;"><span style="word-wrap: break-word; white-space: pre;">	<img src="http://www.cppblog.com/images/cppblog_com/lynch/11.jpg" border="0" alt="" width="742" height="144" /></span></div><div style="word-wrap: break-word; font-family: 'Times New Roman'; line-height: 18.200000762939453px;"><strong style="word-wrap: break-word;">方法三：</strong></div><div style="word-wrap: break-word; font-family: 'Times New Roman'; line-height: 18.200000762939453px;"><span style="word-wrap: break-word; white-space: pre;">	</span>使用正则表达式。</div><div id="codeText" style="word-wrap: break-word; border: 1px solid #dddddd; width: 645.816650390625px; overflow: auto; margin: 0px 0px 1.1em; word-break: break-all; background-color: #ffffff; font-size: 12px; line-height: normal; font-family: Consolas, monospace;"><ol start="1" style="word-wrap: break-word; margin: 0px 1px 0px 0px; color: #5c5c5c; line-height: 1.3; padding: 5px 0pt;"><li style="word-wrap: break-word; padding-left: 10px;"><span style="word-wrap: break-word; color: #000000; white-space: pre;">	</span>wc&nbsp;<span style="word-wrap: break-word; color: #0000cc;">-</span>l `find&nbsp;<span style="word-wrap: break-word; color: #0000cc;">.</span><span style="word-wrap: break-word; color: #0000cc;">/</span>&nbsp;<span style="word-wrap: break-word; color: #0000cc;">-</span>name&nbsp;<span style="word-wrap: break-word; color: #ff00ff;">"*.[hc]*"</span>&nbsp;`</li></ol></div><div style="word-wrap: break-word; font-family: 'Times New Roman'; line-height: 18.200000762939453px;"><span style="word-wrap: break-word; white-space: pre;">	</span>结果如下：</div><div style="word-wrap: break-word; font-family: 'Times New Roman'; line-height: 18.200000762939453px;"><span style="word-wrap: break-word; white-space: pre;">	<img src="http://www.cppblog.com/images/cppblog_com/lynch/12.jpg" border="0" alt="" width="721" height="137" /></span></div><div style="word-wrap: break-word; font-family: 'Times New Roman'; line-height: 18.200000762939453px;"></div><div style="word-wrap: break-word; font-family: 'Times New Roman'; line-height: 18.200000762939453px;">附常用正则表达式意义：<br style="word-wrap: break-word;" /><div style="word-wrap: break-word;"><div style="word-wrap: break-word; background-image: none; background-attachment: scroll; background-color: #f2f2f2; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #dddddd; font-size: 12px; line-height: 25px; font-weight: bold; height: 25px; width: 645.816650390625px; background-position: 0px 0px; background-repeat: repeat repeat;"><p style="word-wrap: break-word; padding: 0px 0px 0px 30px;">点击(<span style="word-wrap: break-word; cursor: pointer; color: red;">此处</span>)折叠或打开</p></div><div id="code726" style="word-wrap: break-word; border: 1px solid #dddddd; width: 645.816650390625px; overflow: auto; margin: 0px 0px 1.1em; word-break: break-all; letter-spacing: 0.1px; background-color: #ffffff; font-size: 12px; line-height: normal; font-family: Consolas, monospace;"><ol start="1" style="word-wrap: break-word; margin: 0px 1px 0px 0px; color: #5c5c5c; line-height: 1.3; padding-left: 40px;"><li style="word-wrap: break-word; padding-left: 10px;">\ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个后向引用、或一个八进制转义符。&nbsp;<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的Multiline 属性，^ 也匹配 &#8217;\n&#8217; 或 &#8217;\r&#8217; 之后的位置。&nbsp;<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">$ 匹配输入字符串的结束位置。如果设置了 RegExp 对象的Multiline 属性，$ 也匹配 &#8217;\n&#8217; 或 &#8217;\r&#8217; 之前的位置。&nbsp;<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;"><span style="word-wrap: break-word; color: #0000cc;">*</span>&nbsp;匹配前面的子表达式零次或多次。&nbsp;<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;"><span style="word-wrap: break-word; color: #0000cc;">+</span>&nbsp;匹配前面的子表达式一次或多次。<span style="word-wrap: break-word; color: #0000cc;">+</span>&nbsp;等价于&nbsp;<span style="word-wrap: break-word; color: #0000cc;">{</span>1<span style="word-wrap: break-word; color: #0000cc;">,</span><span style="word-wrap: break-word; color: #0000cc;">}</span>。&nbsp;<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">? 匹配前面的子表达式零次或一次。? 等价于&nbsp;<span style="word-wrap: break-word; color: #0000cc;">{</span>0<span style="word-wrap: break-word; color: #0000cc;">,</span>1<span style="word-wrap: break-word; color: #0000cc;">}</span>。&nbsp;<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;"><span style="word-wrap: break-word; color: #0000cc;">{</span>n<span style="word-wrap: break-word; color: #0000cc;">}</span>&nbsp;n 是一个非负整数，匹配确定的n 次。&nbsp;<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;"><span style="word-wrap: break-word; color: #0000cc;">{</span>n<span style="word-wrap: break-word; color: #0000cc;">,</span><span style="word-wrap: break-word; color: #0000cc;">}</span>&nbsp;n 是一个非负整数，至少匹配n 次。&nbsp;<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;"><span style="word-wrap: break-word; color: #0000cc;">{</span>n<span style="word-wrap: break-word; color: #0000cc;">,</span>m<span style="word-wrap: break-word; color: #0000cc;">}</span>&nbsp;m 和 n 均为非负整数，其中n&nbsp;<span style="word-wrap: break-word; color: #0000cc;">&lt;</span><span style="word-wrap: break-word; color: #0000cc;">=</span>&nbsp;m。最少匹配 n 次且最多匹配 m 次。在逗号和两个数之间不能有空格。&nbsp;<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">? 当该字符紧跟在任何一个其他限制符&nbsp;<span style="word-wrap: break-word; color: #0000cc;">(</span><span style="word-wrap: break-word; color: #0000cc;">*</span><span style="word-wrap: break-word; color: #0000cc;">,</span>&nbsp;<span style="word-wrap: break-word; color: #0000cc;">+</span><span style="word-wrap: break-word; color: #0000cc;">,</span>&nbsp;?<span style="word-wrap: break-word; color: #0000cc;">,</span>&nbsp;<span style="word-wrap: break-word; color: #0000cc;">{</span>n<span style="word-wrap: break-word; color: #0000cc;">}</span><span style="word-wrap: break-word; color: #0000cc;">,</span>&nbsp;<span style="word-wrap: break-word; color: #0000cc;">{</span>n<span style="word-wrap: break-word; color: #0000cc;">,</span><span style="word-wrap: break-word; color: #0000cc;">}</span><span style="word-wrap: break-word; color: #0000cc;">,</span>&nbsp;<span style="word-wrap: break-word; color: #0000cc;">{</span>n<span style="word-wrap: break-word; color: #0000cc;">,</span>m<span style="word-wrap: break-word; color: #0000cc;">}</span><span style="word-wrap: break-word; color: #0000cc;">)</span>&nbsp;后面时，匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串，而默认的贪婪模式则尽可能多的匹配所搜索的字符串。&nbsp;<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;"><span style="word-wrap: break-word; color: #0000cc;">.</span>&nbsp;匹配除 &#8220;\n&#8221; 之外的任何单个字符。要匹配包括 &#8217;\n&#8217; 在内的任何字符，请使用象 &#8217;<span style="word-wrap: break-word; color: #0000cc;">[</span><span style="word-wrap: break-word; color: #0000cc;">.</span><span style="word-wrap: break-word; color: #0000cc;">\</span>n<span style="word-wrap: break-word; color: #0000cc;">]</span>&#8217; 的模式。&nbsp;<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;"><span style="word-wrap: break-word; color: #0000cc;">(</span>pattern<span style="word-wrap: break-word; color: #0000cc;">)</span>&nbsp;匹配pattern 并获取这一匹配。&nbsp;<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;"><span style="word-wrap: break-word; color: #0000cc;">(</span><span style="word-wrap: break-word; color: #0000cc;">?</span><span style="word-wrap: break-word; color: #0000cc;">:</span>pattern<span style="word-wrap: break-word; color: #0000cc;">)</span>&nbsp;匹配pattern 但不获取匹配结果，也就是说这是一个非获取匹配，不进行存储供以后使用。&nbsp;<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;"><span style="word-wrap: break-word; color: #0000cc;">(</span><span style="word-wrap: break-word; color: #0000cc;">?</span><span style="word-wrap: break-word; color: #0000cc;">=</span>pattern<span style="word-wrap: break-word; color: #0000cc;">)</span>&nbsp;正向预查，在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配，也就是说，该匹配不需要获取供以后使用。&nbsp;<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;"><span style="word-wrap: break-word; color: #0000cc;">(</span><span style="word-wrap: break-word; color: #0000cc;">?</span>!pattern<span style="word-wrap: break-word; color: #0000cc;">)</span>&nbsp;负向预查，与<span style="word-wrap: break-word; color: #0000cc;">(</span><span style="word-wrap: break-word; color: #0000cc;">?</span><span style="word-wrap: break-word; color: #0000cc;">=</span>pattern<span style="word-wrap: break-word; color: #0000cc;">)</span>作用相反&nbsp;<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">x<span style="word-wrap: break-word; color: #0000cc;">|</span>y 匹配 x 或 y。&nbsp;<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;"><span style="word-wrap: break-word; color: #0000cc;">[</span>xyz<span style="word-wrap: break-word; color: #0000cc;">]</span>&nbsp;字符集合。&nbsp;<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;"><span style="word-wrap: break-word; color: #0000cc;">[</span><span style="word-wrap: break-word; color: #0000cc;">^</span>xyz<span style="word-wrap: break-word; color: #0000cc;">]</span>&nbsp;负值字符集合。&nbsp;<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;"><span style="word-wrap: break-word; color: #0000cc;">[</span>a-z<span style="word-wrap: break-word; color: #0000cc;">]</span>&nbsp;字符范围，匹配指定范围内的任意字符。&nbsp;<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;"><span style="word-wrap: break-word; color: #0000cc;">[</span><span style="word-wrap: break-word; color: #0000cc;">^</span>a-z<span style="word-wrap: break-word; color: #0000cc;">]</span>&nbsp;负值字符范围，匹配任何不在指定范围内的任意字符。&nbsp;<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">\b 匹配一个单词边界，也就是指单词和空格间的位置。&nbsp;<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">\B 匹配非单词边界。&nbsp;<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">\cx 匹配由x指明的控制字符。&nbsp;<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">\d 匹配一个数字字符。等价于&nbsp;<span style="word-wrap: break-word; color: #0000cc;">[</span>0-9<span style="word-wrap: break-word; color: #0000cc;">]</span>。&nbsp;<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">\D 匹配一个非数字字符。等价于&nbsp;<span style="word-wrap: break-word; color: #0000cc;">[</span><span style="word-wrap: break-word; color: #0000cc;">^</span>0-9<span style="word-wrap: break-word; color: #0000cc;">]</span>。&nbsp;<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">\f 匹配一个换页符。等价于 \x0c 和 \cL。&nbsp;<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">\n 匹配一个换行符。等价于 \x0a 和 \cJ。&nbsp;<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">\r 匹配一个回车符。等价于 \x0d 和 \cM。&nbsp;<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">\s 匹配任何空白字符，包括空格、制表符、换页符等等。等价于<span style="word-wrap: break-word; color: #0000cc;">[</span>&nbsp;\f\n\r\t\v<span style="word-wrap: break-word; color: #0000cc;">]</span>。&nbsp;<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">\S 匹配任何非空白字符。等价于&nbsp;<span style="word-wrap: break-word; color: #0000cc;">[</span><span style="word-wrap: break-word; color: #0000cc;">^</span>&nbsp;\f\n\r\t\v<span style="word-wrap: break-word; color: #0000cc;">]</span>。&nbsp;<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">\t 匹配一个制表符。等价于 \x09 和 \cI。&nbsp;<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">\v 匹配一个垂直制表符。等价于 \x0b 和 \cK。&nbsp;<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">\w 匹配包括下划线的任何单词字符。等价于&#8217;<span style="word-wrap: break-word; color: #0000cc;">[</span>A-Za-z0-9_<span style="word-wrap: break-word; color: #0000cc;">]</span>&#8217;。&nbsp;<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">\W 匹配任何非单词字符。等价于 &#8217;<span style="word-wrap: break-word; color: #0000cc;">[</span><span style="word-wrap: break-word; color: #0000cc;">^</span>A-Za-z0-9_<span style="word-wrap: break-word; color: #0000cc;">]</span>&#8217;。&nbsp;<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">\xn 匹配 n，其中 n 为十六进制转义值。十六进制转义值必须为确定的两个数字长。&nbsp;<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">\num 匹配 num，其中num是一个正整数。对所获取的匹配的引用。&nbsp;<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">\n 标识一个八进制转义值或一个后向引用。如果 \n 之前至少 n 个获取的子表达式，则 n 为后向引用。否则，如果 n 为八进制数字&nbsp;<span style="word-wrap: break-word; color: #0000cc;">(</span>0-7<span style="word-wrap: break-word; color: #0000cc;">)</span>，则 n 为一个八进制转义值。&nbsp;<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">\nm 标识一个八进制转义值或一个后向引用。如果 \nm 之前至少有is preceded by at least nm 个获取得子表达式，则 nm 为后向引用。如果 \nm 之前至少有 n 个获取，则 n 为一个后跟文字 m 的后向引用。如果前面的条件都不满足，若 n 和 m 均为八进制数字&nbsp;<span style="word-wrap: break-word; color: #0000cc;">(</span>0-7<span style="word-wrap: break-word; color: #0000cc;">)</span>，则 \nm 将匹配八进制转义值 nm。&nbsp;<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">\nml 如果 n 为八进制数字&nbsp;<span style="word-wrap: break-word; color: #0000cc;">(</span>0-3<span style="word-wrap: break-word; color: #0000cc;">)</span>，且 m 和 l 均为八进制数字&nbsp;<span style="word-wrap: break-word; color: #0000cc;">(</span>0-7<span style="word-wrap: break-word; color: #0000cc;">)</span>，则匹配八进制转义值 nml。&nbsp;<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">\un 匹配 n，其中 n 是一个用四个十六进制数字表示的Unicode字符。</li></ol></div></div></div><img src ="http://www.cppblog.com/lynch/aggbug/196343.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/lynch/" target="_blank">董三</a> 2012-12-16 00:18 <a href="http://www.cppblog.com/lynch/archive/2012/12/16/196343.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux下使用mysql的C语言API</title><link>http://www.cppblog.com/lynch/archive/2012/12/15/196331.html</link><dc:creator>董三</dc:creator><author>董三</author><pubDate>Sat, 15 Dec 2012 14:54:00 GMT</pubDate><guid>http://www.cppblog.com/lynch/archive/2012/12/15/196331.html</guid><wfw:comment>http://www.cppblog.com/lynch/comments/196331.html</wfw:comment><comments>http://www.cppblog.com/lynch/archive/2012/12/15/196331.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/lynch/comments/commentRss/196331.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/lynch/services/trackbacks/196331.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.cppblog.com/lynch/archive/2012/12/15/196331.html'>阅读全文</a><img src ="http://www.cppblog.com/lynch/aggbug/196331.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/lynch/" target="_blank">董三</a> 2012-12-15 22:54 <a href="http://www.cppblog.com/lynch/archive/2012/12/15/196331.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Posix  Pthread学习资料</title><link>http://www.cppblog.com/lynch/archive/2012/11/28/195763.html</link><dc:creator>董三</dc:creator><author>董三</author><pubDate>Wed, 28 Nov 2012 05:21:00 GMT</pubDate><guid>http://www.cppblog.com/lynch/archive/2012/11/28/195763.html</guid><wfw:comment>http://www.cppblog.com/lynch/comments/195763.html</wfw:comment><comments>http://www.cppblog.com/lynch/archive/2012/11/28/195763.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/lynch/comments/commentRss/195763.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/lynch/services/trackbacks/195763.html</trackback:ping><description><![CDATA[<div>https://computing.llnl.gov/tutorials/pthreads/<br /><div>http://www.yolinux.com/TUTORIALS/LinuxTutorialPosixThreads.html<br /><div>http://www.sourceware.org/pthreads-win32/</div></div></div><img src ="http://www.cppblog.com/lynch/aggbug/195763.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/lynch/" target="_blank">董三</a> 2012-11-28 13:21 <a href="http://www.cppblog.com/lynch/archive/2012/11/28/195763.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>