Índice Anterior Próxima

Não seja afobado, seja ninja

Está gostando da leitura? Está aprendendo? Compre o livro novo que traz mais conteúdo, texto atualizado e ilustrações!

"Encere à direita, lixe à esquerda e pinte para cima e para baixo."

Vamos ver uma maneira diferente e interessante de mostrar exemplos de expressões regulares: mostrando como funciona o processo criativo, passo a passo. A arte ninja milenar de criar ERs do nada, pela primeira vez demonstrada.

Mentalizando seu objetivo (data, horário, e-mail , número, telefone), comece a primeira tentativa tímida e abrangente, usando o ponto para se ter um esqueleto genérico do que se quer casar. Teste a ER assim mesmo.

Deu certo? Então agora você trocará alguns dos pontos para ser mais específico, de acordo com as regras do tipo de dado que você quer casar. E assim segue, devagar, sempre testando cada modificação e seguindo a passos curtos, com modificações pequenas.

Ao chegar em um ponto onde já está bem específico, procure por alternativas, exceções, elas sempre existem. Aquele trecho da ER é realmente obrigatório, não seria opcional? E quando você acha que a ER está pronta, chega um dado novo um pouquinho diferente e você vê que tinha esquecido que aquilo também era válido. Para incrementar a ER, suas armas são os grupos, o ou, o opcional e as chaves.

Quando sua ER ficar grande e cheia de alternativas, é sinal de que você está conseguindo dizer ao robozinho exatamente o que quer. E assim é que se fazem ERs complicadas Daniel San, de grão em grão!

Tolo daquele que senta e quer escrever o todo de uma vez! A arte de criar ERs deve ser saboreada, sem pressa, e com inspiração.

"Dê um passo após o outro pequeno gafanhoto."

dd/mm/aaaa
	../../....
	[0-9]{2}/[0-9]{2}/[0-9]{4}
	[0123][0-9]/[0-9]{2}/[0-9]{4}
	[0123][0-9]/[01][0-9]/[0-9]{4}
	[0123][0-9]/[01][0-9]/[12][0-9]{3}
	([012][0-9]|3[01])/[01][0-9]/[12][0-9]{3}
	([012][0-9]|3[01])/(0[1-9]|1[012])/[12][0-9]{3}
	(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])/[12][0-9]{3}
hh:mm
	..:..
	[0-9]{2}:[0-9]{2}
	[012][0-9]:[0-9]{2}
	[012][0-9]:[0-5][0-9]
	([01][0-9]|2[0-3]):[0-5][0-9]
usu@dom.zz
	.*@.*
	[^@]*@[^@]*
	[^@]+@[^@]+
	[A-Za-z0-9_.-]+@[A-Za-z0-9_.]+
	[A-Za-z0-9_.-]+@[A-Za-z0-9_]+\.[a-z]{2,3}
	[A-Za-z0-9_.-]+@([A-Za-z0-9_]+\.)+[a-z]{2,3}
	[A-Za-z0-9_.-]+@([A-Za-z0-9_]+\.)+[A-Za-z]{2,3}
	[A-Za-z0-9_.-]+@([A-Za-z0-9_]+\.)+[A-Za-z]{2,4}
números
	[0-9]
	[0-9]+
	-?[0-9]+
	[-+]?[0-9]+
	[-+]?[0-9]+,[0-9]{2}
	[-+]?[0-9]+(,[0-9]{2})?
	[-+]?[0-9]+\.[0-9]+(,[0-9]{2})?
	[-+]?[0-9]+\.[0-9]{3}(,[0-9]{2})?
	[-+]?[0-9]{3}\.[0-9]{3}(,[0-9]{2})?
	[-+]?[0-9]{1,3}\.[0-9]{3}(,[0-9]{2})?
	[-+]?[0-9]{1,3}(\.[0-9]{3})?(,[0-9]{2})?
telefone
	...-....
	[0-9]{3}-[0-9]{4}
	[0-9]{4}-[0-9]{4}
	\(..\)[0-9]{4}-[0-9]{4}
	\(..\) ?[0-9]{4}-[0-9]{4}
	\(0xx..\) ?[0-9]{4}-[0-9]{4}
	\(0xx[0-9]{2}\) ?[0-9]{4}-[0-9]{4}
	(\(0xx[0-9]{2}\) ?)?[0-9]{4}-[0-9]{4}

Índice Anterior Próxima