<?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>16hot 的博客 &#187; 正则</title>
	<atom:link href="http://www.16hot.com/tag/%e6%ad%a3%e5%88%99/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.16hot.com</link>
	<description>技术、工作、生活，坚持一种信念，一切皆有可能……</description>
	<lastBuildDate>Sat, 07 Jan 2012 11:09:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>正则表达示全集,包括验证汉字在内(转)</title>
		<link>http://www.16hot.com/2010/07/991/</link>
		<comments>http://www.16hot.com/2010/07/991/#comments</comments>
		<pubDate>Fri, 09 Jul 2010 05:34:20 +0000</pubDate>
		<dc:creator>16hot</dc:creator>
				<category><![CDATA[开发]]></category>
		<category><![CDATA[正则]]></category>

		<guid isPermaLink="false">http://blog.isyi.com/?p=991</guid>
		<description><![CDATA[(&#8220;/^[\xa1-\xff]+$/&#8221;这是一个纯中文字符串 正则表达式用于字符串处理、表单验证等场合，实用高效。现将一些常用的表达式 收集于此，以备不时之需。 匹配中文字符的正则表达式： [\u4e00-\u9fa5] 评注：匹配中文还真是个头疼的事，有了这个表达式就好办了 匹配双字节字符(包括汉字在内)：[^\x00-\xff] 评注：可以用来计算字符串的长度（一个双字节字符长度计2，ASCII字符计 1） 匹配空白行的正则表达式：\n\s*\r 评注：可以用来删除空白行 匹配HTML标记的正则表达式：&#60;(\S*?)[^&#62;]*&#62;.*?&#124;&#60;.*? /&#62; 评注：网上流传的版本太 糟糕，上面这个也仅仅能匹配部分，对于复杂的嵌套标记依旧无能为力 匹配首尾空白字符的正则表达式：^\s*&#124;\s*$ 评注：可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等)，非常有用的表 达式 匹配Email地址的正则表达式：\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 评注：表单验 证时很实用 匹配网址URL的正则表达式：[a-zA-z]+://[^\s]* 评注：网上流传的版本功能很有限，上面这个基本可以满足需求 匹配帐号是否合法(字母开头，允许5-16字节，允许字母数字下划线)：^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 评注： 表单验证时很实用 匹配国内电话号码：\d{3}-\d{8}&#124;\d{4}-\d{7} 评注：匹配形式如 0511-4405222 或 021-87888822 匹配腾讯QQ号：[1-9][0-9]{4,} 评注：腾讯QQ号从10000开始 匹配中国邮政编码：[1-9]\d{5}(?!\d) 评注：中国邮政编码为6位数字 匹配身份证：\d{15}&#124;\d{18} 评注：中国的身份证为15位或18位 匹配ip地址：\d+\.\d+\.\d+\.\d+ 评注：提取ip地址时有用 匹配特定数字： ^[1-9]\d*$　 　 //匹配正整数 ^-[1-9]\d*$ 　 //匹配负整数 ^-?[1-9]\d*$ 　　 //匹配整数 ^[1-9]\d*&#124;0$　 //匹配非负整数（正整数 + 0） ^-[1-9]\d*&#124;0$　　 //匹配非正整数（负整数 [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>(&#8220;/^[\xa1-\xff]+$/&#8221;这是一个纯中文字符串<br />
正则表达式用于字符串处理、表单验证等场合，实用高效。现将一些常用的表达式 收集于此，以备不时之需。</p></blockquote>
<blockquote><p>匹配中文字符的正则表达式： [\u4e00-\u9fa5]<br />
评注：匹配中文还真是个头疼的事，有了这个表达式就好办了</p></blockquote>
<blockquote><p>匹配双字节字符(包括汉字在内)：[^\x00-\xff]<br />
评注：可以用来计算字符串的长度（一个双字节字符长度计2，ASCII字符计 1）</p></blockquote>
<blockquote><p>匹配空白行的正则表达式：\n\s*\r<br />
评注：可以用来删除空白行</p></blockquote>
<blockquote><p>匹配HTML标记的正则表达式：&lt;(\S*?)[^&gt;]*&gt;.*?|&lt;.*? /&gt;<br />
评注：网上流传的版本太 糟糕，上面这个也仅仅能匹配部分，对于复杂的嵌套标记依旧无能为力</p></blockquote>
<blockquote><p>匹配首尾空白字符的正则表达式：^\s*|\s*$<br />
评注：可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等)，非常有用的表 达式</p></blockquote>
<blockquote><p>匹配Email地址的正则表达式：\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*<br />
评注：表单验 证时很实用</p></blockquote>
<blockquote><p>匹配网址URL的正则表达式：[a-zA-z]+://[^\s]*<br />
评注：网上流传的版本功能很有限，上面这个基本可以满足需求</p></blockquote>
<blockquote><p>匹配帐号是否合法(字母开头，允许5-16字节，允许字母数字下划线)：^[a-zA-Z][a-zA-Z0-9_]{4,15}$<br />
评注： 表单验证时很实用</p></blockquote>
<blockquote><p>匹配国内电话号码：\d{3}-\d{8}|\d{4}-\d{7}<br />
评注：匹配形式如 0511-4405222 或  021-87888822</p></blockquote>
<blockquote><p>匹配腾讯QQ号：[1-9][0-9]{4,}<br />
评注：腾讯QQ号从10000开始</p></blockquote>
<blockquote><p>匹配中国邮政编码：[1-9]\d{5}(?!\d)<br />
评注：中国邮政编码为6位数字</p></blockquote>
<blockquote><p>匹配身份证：\d{15}|\d{18}<br />
评注：中国的身份证为15位或18位</p></blockquote>
<blockquote><p>匹配ip地址：\d+\.\d+\.\d+\.\d+<br />
评注：提取ip地址时有用</p></blockquote>
<blockquote><p>匹配特定数字：<br />
^[1-9]\d*$　 　 //匹配正整数<br />
^-[1-9]\d*$ 　 //匹配负整数<br />
^-?[1-9]\d*$ 　　 //匹配整数<br />
^[1-9]\d*|0$　 //匹配非负整数（正整数 + 0）<br />
^-[1-9]\d*|0$　　  //匹配非正整数（负整数 + 0）<br />
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$　　 //匹配正浮点数<br />
^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ 　 //匹配负浮点数<br />
^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$　 //匹配浮点数<br />
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$ 　　 //匹配非负浮点数（正浮点数 + 0）<br />
^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$　　 //匹配非正浮点数（负浮点数 + 0）<br />
评注：处理大量数据时有用，具体应用时注意修正</p></blockquote>
<blockquote><p>匹配特定字符串：<br />
^[A-Za-z]+$　　//匹配由26个英文字母组成的字符串<br />
^[A-Z]+$　　//匹配由26个英文字母 的大写组成的字符串<br />
^[a-z]+$　　//匹配由26个英文字母的小写组成的字符串<br />
^[A-Za-z0-9]+$　　//匹配由数字和 26个英文字母组成的字符串<br />
^\w+$　　//匹配由数字、26个英文字母或者下划线组成的字符串<br />
评注：最基本也是最常用的一些表达式</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.16hot.com/2010/07/991/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

