regex

25
III Semana Acadêmica FACOMP UFPA III Semana Acadêmica FACOMP UFPA Lourdilene Souza Lourdilene Souza [email protected] Regex Regex

Upload: lourdilene-souza

Post on 20-Jul-2015

180 views

Category:

Technology


1 download

TRANSCRIPT

III Semana Acadêmica FACOMP UFPAIII Semana Acadêmica FACOMP UFPA

Lourdilene SouzaLourdilene [email protected]

RegexRegex

O que são expressões O que são expressões regulares ?regulares ?

“Uma expressão regular traduz um conjunto de padrões, possivelmente complicados e difíceis, pela sua dimensão, de enumerar, numa expressão de dimensão curta e, relativamente fácil de interpretar.”

Aurelio Marinho Jargas

TerminologiaTerminologia

✔ Metacaractere

✔ Casar

Para que servem as expressões Para que servem as expressões regulares ?regulares ?

✔ data✔ horário✔ número IP✔ nome de pessoa✔ endereço de e-mail✔ endereço de Internet✔ nome de usuário e senha✔ declaração de uma função()✔ dados na coluna N de um texto✔ dados que estão entre <tags></tags>✔ campos específicos de um texto tabulado✔ número de telefone, RG, CPF, cartão de crédito✔ dados que estão apenas no começo ou no fim da linha

ExemploExemplo

05:15 ernesto

08:39 ricardo

10:32 patricia

14:59 gabriel

16:27 carla

22:23 marcelo

Quem acessou o sistema depoisde 12:00 e antes das 18:00 ?

^1[2-8]

ExemplosExemplos● Data (0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])/[12][0-9]{3}

● Hora ([01][0-9]|2[0-3]):[0-5][0-9]

Email [A-Za-z0-9_.-]+@([A-Za-z0-9_]+\.)+[A-Za-z]{2,4}

Numeros [-+]?[0-9]{1,3}(\.[0-9]{3})?(,[0-9]{2})?

Telefone (\(0xx[0-9]{2}\) ?)?[0-9]{4}-[0-9]{4}

Os metacaracteresOs metacaracteres

meta mnemônico

. ponto

[] lista

[^] lista negada

? opcional

* asterisco

+ mais

{} chaves

^ circunflexo

$ cifrão

\b borda

\ escape

| ou

() grupo

\1 retrovisor

Ponto: o juizPonto: o juiz

Quantas vezes nossa ER casou ?

Com quais caracteres o ponto casou ?

ER = faze.

Meta Mnemônico Função Exemplos Valores possíveis

. ponto Um caractere qualquer

.eclado

Teclado, teclado,zeclado, ...

“Estamos descobrindo maneiras melhores de desenvolver software, fazendo-o nós mesmos e ajudando outros a fazerem o mesmo.[...]”

Manifesto Ágil

Lista: a exigente [...]Lista: a exigente [...]Sabe o que quer.

Meta Mnemônico Função Exemplos Valores possíveis

[...] lista Lista de caracteres permitidos

[Tt]eclado

Teclado, teclado

Lista negada: a experiente [^...]Lista negada: a experiente [^...]

Meta: [^...]

Mnemônico: Lista negada

Função: Lista de caracteres proibidos

Exemplos: wifi[^1-2]

Valores possíveis: wifi3, wifi333, wifi4,wifi44567, ...

Opcional: o opcional ?Opcional: o opcional ?

Meta Mnemônico Função Exemplos Valores possíveis

? opcional Zero ou um sapato[s!]? sapatos, sapato!, sapato

Asterisco: o tanto-faz *Asterisco: o tanto-faz *

Meta Mnemônico Função Exemplos Valores possíveis

*

asterisco Zero, um ou mais

mu*ito mito, muito, muuito,muuuito, ...

Mais: o tem-que-ter +Mais: o tem-que-ter +

Meta: +

Mnemônico: mais

Função: Um ou mais

Exemplo: mu+ito

Valores possíveis: muito, muuito,muuuito, ...

Chaves: o controle {n,m}Chaves: o controle {n,m}

Meta Mnemônico Função Exemplos Valores possíveis

{n, m} chaves de n até m mu{0, 1}ito mito, muito

Circunflexo: o início ^Circunflexo: o início ^

Meta Mnemônico Função Exemplos Valores possíveis

^ circunflexo início da linha

^lu l&$\o/#)*894578...

Cifrão: o fim $Cifrão: o fim $

Meta Mnemônico Função Exemplos Valores possíveis

$ cifrão fim da linha lu$ 78......@&$\o/#)*99457lu

Escape: a criptonita \Escape: a criptonita \

Meta Mnemônico Função Exemplos Valores possíveis

\. escape Torna literal o caractere .

[0-9]\.[0-9]{3}\. [0-9]{3}-[0-9]

2.222.222-2,9.999.999-9, ...

Ou: o alternativo |Ou: o alternativo |Uma alternativa para cada situação.

Meta: |

Mnemônico: ou

Função: Ou um ou outro

Exemplos: Bom dia|Boa tarde

Valores possíveis: Bom dia, Boa tarde

Grupo: o pop (...)Grupo: o pop (...)

Meta Mnemônico Função Exemplos Valores possíveis

(...) grupo

delimita um grupo

(\.[0-9]){3}

.0.6.2, .2.8.9, .6.6.6,

...

Prática IPrática IDeseja-se realizar a validação da data em determinado formulário no formato 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}

Prática IIPrática IIDeseja-se realizar a validação da data em determinado formulário no formato 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]

Testadores OnlineTestadores Online

RegexPal - http://regexpal.com/

Testador de Expressões Regulares - http://alessandrosantos.com.br/lab/er/

Rubular - http://www.rubular.com/

RegExr - http://gskinner.com/RegExr/

Regex - http://regex.larsolavtorvik.com/

Exemplo PHPExemplo PHP

<?php$hora = "15:00";$er = "([01][0-9]|2[0-3]):([0-5][0-9])";if (ereg($er, $hora, $matriz)){echo "Na Semana Acadêmica da Faculdade de Computação, a palestra de REGEX começou às $matriz[1] horas e ";echo "$matriz[2] minutos.\n";}?>

Na Semana Acadêmica da Faculdade de Computação, a palestra de REGEX começou às 15 horas e 00 minutos.

ReferênciaReferência

Portal brasileiro de expressões regulareshttp://aurelio.net/regex/

Obrigada! Obrigada!