<?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>Felipe Ribeiro &#187; regex</title>
	<atom:link href="http://blog.feliperibeiro.com/tag/regex/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.feliperibeiro.com</link>
	<description>My hacks, slides and random stuff</description>
	<lastBuildDate>Fri, 05 Mar 2010 19:04:04 +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>O Mantra das REGEX &#8211; As 8 Expressões Regulares que precisamos saber.</title>
		<link>http://blog.feliperibeiro.com/2008/01/o-mantra-das-regex-as-8-expressoes-regulares-que-precisamos-saber.html</link>
		<comments>http://blog.feliperibeiro.com/2008/01/o-mantra-das-regex-as-8-expressoes-regulares-que-precisamos-saber.html#comments</comments>
		<pubDate>Wed, 30 Jan 2008 03:15:00 +0000</pubDate>
		<dc:creator>Felipe Ribeiro</dc:creator>
				<category><![CDATA[apache]]></category>
		<category><![CDATA[desenvolvimento de software]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[regex]]></category>

		<guid isPermaLink="false">http://www.feliperibeiro.com/blog/?p=77</guid>
		<description><![CDATA[Você tem medo de REGEX!? Eu também! Nos últimos tempos tenho lidado bastante com REGEX editando regras do Apache mod_rewrite e com a classe que publiquei no PHPClasses, a SiteMapGenerator Tabajara, que se propõe a gerar um mapa do site em xml no padrão estabelecido pelo Google para melhorar a indexação. Mas depois de tirar [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://feliperibeiro.com/imagens/fts-regex-front.jpg" alt="Regex" align="left" border="1" hspace="4" vspace="1" />Você tem <strong>medo</strong> de REGEX!? Eu também!</p>
<p>Nos últimos tempos tenho lidado bastante com REGEX editando regras do Apache mod_rewrite e com a classe que publiquei no PHPClasses, a <a href="http://www.phpclasses.org/browse/package/4305.html">SiteMapGenerator</a> <s>Tabajara</s>, que se propõe a gerar um mapa do site em xml no padrão estabelecido pelo Google para melhorar a indexação.</p>
<p>Mas depois de tirar onda da galera do Perl no post anterior, vou exaltar a importância que expressões regulares têm nas nossas validações, e para isso vou citar as 8 expressões regulares que todo programador Web deveria saber (exemplos em PHP, mas são válidos para qualquer linguagem com suporte a PCRE).</p>
<h4>Validação de nomes de usuário</h4>
<p>4 a 28 caracteres alfanuméricos e underscores:</p>
<p><code><br />
$string = "userNaME4234432_";<br />
if (preg_match('/^[a-z\d_]{4,28}$/i', $string)) {<br />
echo "exemplo 1 ok.";<br />
}<br />
</code></p>
<h4>Validação de números de telefone</h4>
<p><strong>(##) ####-####</strong> ou <strong>##-####-####</strong><br />
<code><br />
$string = "(32) 5555-5555";<br />
if (preg_match('/^(\(?[0-9]{2}\)?|[-. ]?)[ ][0-9]{4}[-. ]?[0-9]{4}$/', $string)) {<br />
echo "exemplo 2 ok.";<br />
}</code></p>
<p><code></code><span class="Apple-style-span" style="font-family: Courier; font-size: 13px"><br />
</span></p>
<h4>Endereços de e-mail</h4>
<p><strong>foo@bar.foo</strong><br />
<code><br />
$string = "first.last@domain.co.uk";<br />
if (preg_match('/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.]</code></p>
<p><code>[a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',<br />
$string)) {<br />
echo "examplo 3 ok.";<br />
}<br />
</code></p>
<h4>CEPs</h4>
<p>#####-### ou ########</p>
<p><code>$string = "55324-432";<br />
if (preg_match('/^[0-9]{5,5}([- ]?[0-9]{4})?$/', $string)) {<br />
echo "exemplo 4 ok.";<br />
}</code></p>
<h4>Endereços IP</h4>
<p><strong>255.255.255.0</strong><br />
<code><br />
$string = "255.255.255.0";<br />
if (preg_match('^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:[.](?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$'</code></p>
<p><code>, $string)) {<br />
echo "exemplo 5 ok.";<br />
}</code></p>
<p><code><br />
</code></p>
<h4>Código de cores RGB em Hexadecimal</h4>
<p><strong>#FFFFFF, #FFF, FFF, FFFFFF</strong></p>
<p><code>$string = "#666666";<br />
if (preg_match('/^#(?:(?:[a-f\d]{3}){1,2})$/i', $string)) {<br />
echo "exemplo 6 ok.";<br />
}<br />
</code></p>
<h4>Comentários de múltiplas linhas</h4>
<p><strong>/* Lorem<br />
Ipsun<br />
dolor*/</strong><br />
<code><br />
$string = "/* commmmment */";<br />
if (preg_match('/^[(/*)+.+(*/)]$/', $string)) {<br />
echo "exemplo 7 ok.";<br />
}<br />
</code></p>
<h4>Datas</h4>
<p><strong>DD/MM/YYYY</strong> ou <strong>MM/DD/YYYY</strong><br />
<code><br />
$string = "30/01/2008";<br />
if (preg_match('/^\d{1,2}\/\d{1,2}\/\d{4}$/', $string)) {<br />
echo "exemplo 8 successful.";<br />
}<br />
</code><br />
Esses exemplos foram retirados do site Devolio[1] , porém algumas expressões eu alterei para ajustar aos padrões brasileiros de telefone e cep. Se por acaso fiz alguma besteira, peço que um <span class="Apple-style-span" style="font-weight: bold">REGEXPERT</span> comente e corrija! E no segundo link[2] um validador de expressões regulares.</p>
<p><a href="http://devolio.com/blog/archives/34-8-Practical-PHP-Regular-Expressions.html">[1] 8 Practical PHP Regular Expressions &#8211; Devolio</a><br />
<a href="http://www.devolio.com/regextester/">[2] Perl Compatible Regular Expression Tester</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.feliperibeiro.com/2008/01/o-mantra-das-regex-as-8-expressoes-regulares-que-precisamos-saber.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
