<?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>fish的航海日志 &#187; 正则表达式 regular</title>
	<atom:link href="http://blog.v2op.com/tag/%e6%ad%a3%e5%88%99%e8%a1%a8%e8%be%be%e5%bc%8f-regular/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.v2op.com</link>
	<description>海到无边天做岸,山登绝顶我为峰</description>
	<lastBuildDate>Mon, 30 Jan 2012 04:30:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>每个web程序员都应该知道的5个正则表达式</title>
		<link>http://blog.v2op.com/2008/09/5-regular-expressions-every-web-programmer-should-know/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=5-regular-expressions-every-web-programmer-should-know</link>
		<comments>http://blog.v2op.com/2008/09/5-regular-expressions-every-web-programmer-should-know/#comments</comments>
		<pubDate>Thu, 18 Sep 2008 17:24:28 +0000</pubDate>
		<dc:creator>AmirFish</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[正则表达式 regular]]></category>

		<guid isPermaLink="false">http://blog.v2op.com/?p=216</guid>
		<description><![CDATA[1、匹配用户名 规则： 允许字符和数字（a-z，A-Z，0-9） 允许下划线 正则表达式： /^[a-zA-Z0-9_]{3,16}$/ 代码示例： function validate_username( $username ) { if(preg_match(&#8216;/^[a-zA-Z0-9_]{3,16}$/&#8217;, $_GET['username'])) { return true; } return false; } 2、匹配XHTML或XML标签 正则表达式： {]*&#62;(.*?)} 代码示例： function get_tag( $tag, $xml ) { $tag = preg_quote($tag); preg_match_all(&#8216;{]*>(.*?).&#8217;}', $xml, $matches, PREG_PATTERN_ORDER); return $matches[1]; &#8230; <a href="http://blog.v2op.com/2008/09/5-regular-expressions-every-web-programmer-should-know/">Continue reading <span class="meta-nav">&#8594;</span></a><table class="wumii-related-items" cellspacing="0" cellpadding="3" border="0"  style="clear: both;">
    
    <tr>
        <td colspan="4"><b><font size="-1"  style="display: block !important; padding: 20px 0 5px !important;">无觅猜您也喜欢：</font></b></td>
    </tr>
    
        <tr>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important;">
                    <a target="_blank" title="针对Web系统常用的功能测试方法浅析" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fblog.v2op.com%2F2008%2F07%2F%25E9%2592%2588%25E5%25AF%25B9web%25E7%25B3%25BB%25E7%25BB%259F%25E5%25B8%25B8%25E7%2594%25A8%25E7%259A%2584%25E5%258A%259F%25E8%2583%25BD%25E6%25B5%258B%25E8%25AF%2595%25E6%2596%25B9%25E6%25B3%2595%25E6%25B5%2585%25E6%259E%2590%2F&from=http%3A%2F%2Fblog.v2op.com%2F2008%2F09%2F5-regular-expressions-every-web-programmer-should-know%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">针对Web系统常用的功能测试方法浅析</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="我正在使用的firefox扩展" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fblog.v2op.com%2F2007%2F11%2F%25E6%2588%2591%25E6%25AD%25A3%25E5%259C%25A8%25E4%25BD%25BF%25E7%2594%25A8%25E7%259A%2584firefox%25E6%2589%25A9%25E5%25B1%2595%2F&from=http%3A%2F%2Fblog.v2op.com%2F2008%2F09%2F5-regular-expressions-every-web-programmer-should-know%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/02/11/2669669.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">我正在使用的firefox扩展</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="本月书单：巴菲特集体智慧编程，激荡三十年走出软件作坊" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fblog.v2op.com%2F2009%2F02%2Fbooklist-of-february-2009%2F&from=http%3A%2F%2Fblog.v2op.com%2F2008%2F09%2F5-regular-expressions-every-web-programmer-should-know%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/02/11/2669453.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">本月书单：巴菲特集体智慧编程，激荡三十年走出软件作坊</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="UE+架构设计+企业文化+服务器架设" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fblog.v2op.com%2F2007%2F12%2Fue%25E6%259E%25B6%25E6%259E%2584%25E8%25AE%25BE%25E8%25AE%25A1%25E4%25BC%2581%25E4%25B8%259A%25E6%2596%2587%25E5%258C%2596%25E6%259C%258D%25E5%258A%25A1%25E5%2599%25A8%25E6%259E%25B6%25E8%25AE%25BE%2F&from=http%3A%2F%2Fblog.v2op.com%2F2008%2F09%2F5-regular-expressions-every-web-programmer-should-know%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">UE+架构设计+企业文化+服务器架设</font>
                    </a>
                </td>
        </tr>
    
    <tr>
        <td colspan="4" align="right">
            <a style="text-decoration: none !important;" href="http://www.wumii.com/widget/relatedItems.htm" target="_blank" title="无觅相关文章插件">
                <font size="-1" color="#bbbbbb" style="display: block !important; font-family: arial !important; padding: 5px 0 !important; font-size: 12px !important; color: #bbb !important;">无觅</font>
            </a>
        </td>
    </tr>
</table>]]></description>
			<content:encoded><![CDATA[<p><strong>1、匹配用户名</strong></p>
<p>规则：</p>
<ul>
<li>允许字符和数字（a-z，A-Z，0-9）</li>
<li>允许下划线</li>
</ul>
<p>正则表达式：</p>
<blockquote><p>/^[a-zA-Z0-9_]{3,16}$/</p></blockquote>
<p>代码示例：</p>
<blockquote><p>function validate_username( $username ) {<br />
if(preg_match(&#8216;/^[a-zA-Z0-9_]{3,16}$/&#8217;, $_GET['username'])) {<br />
return true;<br />
}<br />
return false;<br />
}</p></blockquote>
<p><strong>2、匹配XHTML或XML标签</strong></p>
<p>正则表达式：</p>
<blockquote><p>{]*&gt;(.*?)}</p></blockquote>
<p>代码示例：</p>
<blockquote><p>function get_tag( $tag, $xml ) {<br />
  $tag = preg_quote($tag);<br />
  preg_match_all(&#8216;{<'.$tag.'[^>]*>(.*?)</'.$tag.'>.&#8217;}',<br />
                   $xml,<br />
                   $matches,<br />
                   PREG_PATTERN_ORDER);</p>
<p>  return $matches[1];<br />
}</p></blockquote>
<p><strong>3、匹配确定属性值的XHTML或XML标签（例如：class或tag）</strong></p>
<p>正则表达式：</p>
<blockquote><p>{]*attribute\\s*=\\s*(["'])value\\\\1[^&gt;]*&gt;(.*?)}</p></blockquote>
<p>代码示例：</p>
<blockquote><p>function get_tag( $attr, $value, $xml, $tag=null ) {<br />
  if( is_null($tag) )<br />
    $tag = &#8216;\\w+&#8217;;<br />
  else<br />
    $tag = preg_quote($tag);</p>
<p>  $attr = preg_quote($attr);<br />
  $value = preg_quote($value);</p>
<p>  $tag_regex = “/<(".$tag.")[^>]*$attr\\s*=\\s*”.<br />
                “(['\\"])$value\\\\2[^>]*>(.*?)<\\/\\\\1>/”</p>
<p>  preg_match_all($tag_regex,<br />
                 $xml,<br />
                 $matches,<br />
                 PREG_PATTERN_ORDER);</p>
<p>  return $matches[3];<br />
}</p></blockquote>
<p><strong>4、匹配和解析email地址</strong></p>
<p>代码示例（比较复杂些）：</p>
<blockquote><p>function is_valid_email_address($email){<br />
  $qtext = &#8216;[^\\x0d\\x22\\x5c\\x80-\\xff]&#8216;;<br />
  $dtext = &#8216;[^\\x0d\\x5b-\\x5d\\x80-\\xff]&#8216;;<br />
  $atom = &#8216;[^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c'.<br />
                  '\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+&#8217;;<br />
  $quoted_pair = &#8216;\\x5c[\\x00-\\x7f]&#8216;;<br />
  $domain_literal = “\\x5b($dtext|$quoted_pair)*\\x5d”;<br />
  $quoted_string = “\\x22($qtext|$quoted_pair)*\\x22&#8243;;<br />
  $domain_ref = $atom;<br />
  $sub_domain = “($domain_ref|$domain_literal)”;<br />
  $word = “($atom|$quoted_string)”;<br />
  $domain = “$sub_domain(\\x2e$sub_domain)*”;<br />
  $local_part = “$word(\\x2e$word)*”;<br />
  $addr_spec = “$local_part\\x40$domain”;</p>
<p>  return preg_match(“!^$addr_spec$!”, $email) ? 1 : 0;<br />
}</p></blockquote>
<p><strong>5、匹配URL</strong></p>
<p>正则表达式：</p>
<blockquote><p>{<br />
\\b<br />
# Match the leading part (proto://hostname, or just hostname)<br />
(<br />
# http://, or https:// leading part<br />
(https?)://[-\\w]+(\\.\\w[-\\w]*)+<br />
|<br />
# or, try to find a hostname with more specific sub-expression<br />
(?i: [a-z0-9] (?:[-a-z0-9]*[a-z0-9])? \\. )+ # sub domains<br />
# Now ending .com, etc. For these, require lowercase<br />
(?-i: com\\b<br />
| edu\\b<br />
| biz\\b<br />
| gov\\b<br />
| in(?:t|fo)\\b # .int or .info<br />
| mil\\b<br />
| net\\b<br />
| org\\b<br />
| [a-z][a-z]\\.[a-z][a-z]\\b # two-letter country code<br />
)<br />
)</p>
<p># Allow an optional port number<br />
( : \\d+ )?</p>
<p># The rest of the URL is optional, and begins with /<br />
(<br />
/<br />
# The rest are heuristics for what seems to work well<br />
[^.!,?;"\\'&lt;&gt;()\[\]\{\}\s\x7F-\\xFF]*<br />
(<br />
[.!,?]+ [^.!,?;"\\'&lt;&gt;()\\[\\]\{\\}\s\\x7F-\\xFF]+<br />
)*<br />
)?<br />
}ix</p></blockquote>
<p>完整的文章请<a href="http://immike.net/blog/2007/04/06/5-regular-expressions-every-web-programmer-should-know/" target=“_blank”>访问这里阅读（英文）</a></p>
<p style="margin:0;padding:0;height:1px;overflow:hidden;">
    <script type="text/javascript"><!--
        var wumiiSitePrefix = "http://blog.v2op.com";
        var wumiiEnableCustomPos = false;
        var wumiiParams = "&#038;num=4&#038;mode=3&#038;displayInFeed=1&#038;version=1.0.5.5&#038;pf=WordPress3.3.1";
    //--></script><script type="text/javascript" src="http://widget.wumii.com/ext/relatedItemsWidget.htm"></script><a href="http://www.wumii.com/widget/relatedItems.htm" style="border:0;"><img src="http://static.wumii.com/images/pixel.png" alt="无觅相关文章插件，快速提升流量" style="border:0;padding:0;margin:0;" /></a></p>
<table class="wumii-related-items" cellspacing="0" cellpadding="3" border="0"  style="clear: both;">
    
    <tr>
        <td colspan="4"><b><font size="-1"  style="display: block !important; padding: 20px 0 5px !important;">无觅猜您也喜欢：</font></b></td>
    </tr>
    
        <tr>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important;">
                    <a target="_blank" title="针对Web系统常用的功能测试方法浅析" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fblog.v2op.com%2F2008%2F07%2F%25E9%2592%2588%25E5%25AF%25B9web%25E7%25B3%25BB%25E7%25BB%259F%25E5%25B8%25B8%25E7%2594%25A8%25E7%259A%2584%25E5%258A%259F%25E8%2583%25BD%25E6%25B5%258B%25E8%25AF%2595%25E6%2596%25B9%25E6%25B3%2595%25E6%25B5%2585%25E6%259E%2590%2F&from=http%3A%2F%2Fblog.v2op.com%2F2008%2F09%2F5-regular-expressions-every-web-programmer-should-know%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">针对Web系统常用的功能测试方法浅析</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="我正在使用的firefox扩展" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fblog.v2op.com%2F2007%2F11%2F%25E6%2588%2591%25E6%25AD%25A3%25E5%259C%25A8%25E4%25BD%25BF%25E7%2594%25A8%25E7%259A%2584firefox%25E6%2589%25A9%25E5%25B1%2595%2F&from=http%3A%2F%2Fblog.v2op.com%2F2008%2F09%2F5-regular-expressions-every-web-programmer-should-know%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/02/11/2669669.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">我正在使用的firefox扩展</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="本月书单：巴菲特集体智慧编程，激荡三十年走出软件作坊" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fblog.v2op.com%2F2009%2F02%2Fbooklist-of-february-2009%2F&from=http%3A%2F%2Fblog.v2op.com%2F2008%2F09%2F5-regular-expressions-every-web-programmer-should-know%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/02/11/2669453.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">本月书单：巴菲特集体智慧编程，激荡三十年走出软件作坊</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="UE+架构设计+企业文化+服务器架设" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fblog.v2op.com%2F2007%2F12%2Fue%25E6%259E%25B6%25E6%259E%2584%25E8%25AE%25BE%25E8%25AE%25A1%25E4%25BC%2581%25E4%25B8%259A%25E6%2596%2587%25E5%258C%2596%25E6%259C%258D%25E5%258A%25A1%25E5%2599%25A8%25E6%259E%25B6%25E8%25AE%25BE%2F&from=http%3A%2F%2Fblog.v2op.com%2F2008%2F09%2F5-regular-expressions-every-web-programmer-should-know%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">UE+架构设计+企业文化+服务器架设</font>
                    </a>
                </td>
        </tr>
    
    <tr>
        <td colspan="4" align="right">
            <a style="text-decoration: none !important;" href="http://www.wumii.com/widget/relatedItems.htm" target="_blank" title="无觅相关文章插件">
                <font size="-1" color="#bbbbbb" style="display: block !important; font-family: arial !important; padding: 5px 0 !important; font-size: 12px !important; color: #bbb !important;">无觅</font>
            </a>
        </td>
    </tr>
</table>]]></content:encoded>
			<wfw:commentRss>http://blog.v2op.com/2008/09/5-regular-expressions-every-web-programmer-should-know/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

