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]
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.