anterior | início | próxima

Não seja afobado, seja ninja

"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}
Está gostando da leitura?
Está aprendendo?
Compre o livro novo que traz mais conteúdo, texto atualizado e ilustrações!
anterior | início | próxima