SlideShare uma empresa Scribd logo
1 de 25
III Semana Acadêmica FACOMP UFPA

Regex

Lourdilene Souza
lourdilene.souza@gmail.com
O que são expressões
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
Terminologia
✔

Metacaractere

✔

Casar
Para que servem as expressões
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
✔
✔
Exemplo
Quem acessou o sistema depois
de 12:00 e antes das 18:00 ?
05:15 ernesto
08:39 ricardo
10:32 patricia
14:59 gabriel
16:27 carla
22:23 marcelo

^1[2-8]
Exemplos
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 metacaracteres
meta

mnemônico

.

ponto

[]

lista

[^]

lista negada

?

opcional

*

asterisco

+

mais

{}

chaves

^

circunflexo

$

cifrão

b

borda



escape

|

ou

()

grupo

1

retrovisor
Ponto: o juiz
ER = faze.
“Estamos descobrindo maneiras
melhores de desenvolver software,
fazendo-o nós mesmos e ajudando
outros a fazerem o mesmo.[...]”
Manifesto Ágil

Com quais caracteres o ponto casou ?
Quantas vezes nossa ER casou ?
Meta

Mnemônico

Função

Exemplos

.

ponto

Um caractere .eclado
qualquer

Valores
possíveis
Teclado,
teclado,
zeclado, ...
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 [^...]
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 ?

Meta

Mnemônico

Função

Exemplos

Valores
possíveis

?

opcional

Zero ou um

sapato[s!]?

sapatos,
sapato!,
sapato
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 +
Meta:
+
Mnemônico:
mais
Função:
Um ou mais
Exemplo:
mu+ito
Valores possíveis:
muito, muuito,
muuuito, ...
Chaves: o controle {n,m}

Meta

Mnemônico Função

Exemplos

Valores
possíveis

{n, m}

chaves

mu{0, 1}ito

mito, muito

de n até m
Circunflexo: o início ^

Meta

Mnemônico Função

Exemplos

Valores
possíveis

^

circunflexo

^lu

l&$o/#)*894
578...

início da
linha
Cifrão: o fim $

Meta

Mnemônico Função

Exemplos

Valores
possíveis

$

cifrão

lu$

78......@&$o/
#)*99457lu

fim da linha
Escape: a criptonita 

Meta

Mnemônico

Função

Exemplos

.

escape

Torna literal o [0-9].[0-9]
caractere .
{3}.
[0-9]{3}-[09]

Valores
possíveis
2.222.222-2,
9.999.999-9, ...
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 (...)

Meta

Mnemônico Função

Exemplos

Valores possíveis

(...)

grupo

(.[0-9]){3}

.0.6.2, .2.8.9, .6.6.6,
...

delimita
um grupo
Prática I
Deseja-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 II
Deseja-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 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 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ência
Portal brasileiro de expressões regulares
http://aurelio.net/regex/
Obrigada!

Mais conteúdo relacionado

Semelhante a Regex

Semelhante a Regex (7)

Expressões Regulares
Expressões RegularesExpressões Regulares
Expressões Regulares
 
Algoritmos e Técnicas de Programação - Aula 05
Algoritmos e Técnicas de Programação - Aula 05Algoritmos e Técnicas de Programação - Aula 05
Algoritmos e Técnicas de Programação - Aula 05
 
Lógica De Programação
Lógica De ProgramaçãoLógica De Programação
Lógica De Programação
 
Aula 2 módulo i - psi
Aula 2   módulo i - psiAula 2   módulo i - psi
Aula 2 módulo i - psi
 
Apostila etec banco
Apostila etec   bancoApostila etec   banco
Apostila etec banco
 
Lógica de Programação
Lógica de ProgramaçãoLógica de Programação
Lógica de Programação
 
Math
MathMath
Math
 

Mais de Lourdilene Souza

Mais de Lourdilene Souza (6)

Scrum Wars
Scrum WarsScrum Wars
Scrum Wars
 
Mindset ágil
Mindset ágilMindset ágil
Mindset ágil
 
Construção de arquitetura para software de alta performance
Construção de arquitetura para software de alta performanceConstrução de arquitetura para software de alta performance
Construção de arquitetura para software de alta performance
 
Bad smells no código
Bad smells no códigoBad smells no código
Bad smells no código
 
Principais Práticas das Abordagens Ágeis
Principais Práticas das Abordagens ÁgeisPrincipais Práticas das Abordagens Ágeis
Principais Práticas das Abordagens Ágeis
 
Web form
Web formWeb form
Web form
 

Regex

  • 1. III Semana Acadêmica FACOMP UFPA Regex Lourdilene Souza lourdilene.souza@gmail.com
  • 2. O que são expressões 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
  • 4. Para que servem as expressões 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 ✔ ✔
  • 5. Exemplo Quem acessou o sistema depois de 12:00 e antes das 18:00 ? 05:15 ernesto 08:39 ricardo 10:32 patricia 14:59 gabriel 16:27 carla 22:23 marcelo ^1[2-8]
  • 8. Ponto: o juiz ER = faze. “Estamos descobrindo maneiras melhores de desenvolver software, fazendo-o nós mesmos e ajudando outros a fazerem o mesmo.[...]” Manifesto Ágil Com quais caracteres o ponto casou ? Quantas vezes nossa ER casou ? Meta Mnemônico Função Exemplos . ponto Um caractere .eclado qualquer Valores possíveis Teclado, teclado, zeclado, ...
  • 9. 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
  • 10. 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, ...
  • 11. Opcional: o opcional ? Meta Mnemônico Função Exemplos Valores possíveis ? opcional Zero ou um sapato[s!]? sapatos, sapato!, sapato
  • 12. Asterisco: o tanto-faz * Meta Mnemônico Função Exemplos Valores possíveis * asterisco Zero, um ou mais mu*ito mito, muito, muuito, muuuito, ...
  • 13. Mais: o tem-que-ter + Meta: + Mnemônico: mais Função: Um ou mais Exemplo: mu+ito Valores possíveis: muito, muuito, muuuito, ...
  • 14. Chaves: o controle {n,m} Meta Mnemônico Função Exemplos Valores possíveis {n, m} chaves mu{0, 1}ito mito, muito de n até m
  • 15. Circunflexo: o início ^ Meta Mnemônico Função Exemplos Valores possíveis ^ circunflexo ^lu l&$o/#)*894 578... início da linha
  • 16. Cifrão: o fim $ Meta Mnemônico Função Exemplos Valores possíveis $ cifrão lu$ 78......@&$o/ #)*99457lu fim da linha
  • 17. Escape: a criptonita Meta Mnemônico Função Exemplos . escape Torna literal o [0-9].[0-9] caractere . {3}. [0-9]{3}-[09] Valores possíveis 2.222.222-2, 9.999.999-9, ...
  • 18. 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
  • 19. Grupo: o pop (...) Meta Mnemônico Função Exemplos Valores possíveis (...) grupo (.[0-9]){3} .0.6.2, .2.8.9, .6.6.6, ... delimita um grupo
  • 20. Prática I Deseja-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}
  • 21. Prática II Deseja-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]
  • 22. Testadores 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/
  • 23. Exemplo 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.
  • 24. Referência Portal brasileiro de expressões regulares http://aurelio.net/regex/