abordagem divertida sobre expressões regulares
TRANSCRIPT
FACULDADE SENAC-RS PELOTASAnálise e Desenvolvimento de Sistemas
Expressões RegularesLuis Gustavo S. Barreto
Por que aprender a utilizar expressões regulares?
● Utilidade● Facilita as coisas● É consistente, não sofre grandes alterações
Teste...
if (nome.equals("Luis") ||
nome.equals("Luiz") ||
nome.equals("Luís") ||
nome.equals("Luíz"))
{
System.out.println("Bem-vindo");
}
O que é?
Segundo a Wikipedia...
“(…) provê uma forma concisa e flexível de identificar cadeias de caracteres de interesse, como caracteres particulares, palavras ou padrões de caracteres”
Exemplo
● Luis● Luiz● Luís● Luíz
Lu[ií][sz]
Outras aplicações
● Validação de endereço IP● Validação de endereço de e-mail● Validação de número de telefone● Validação de CEP● Validação de data● Validação de CPF
Onde posso usar?
Tá, vamos aprender!
Expressões regulares...são meta caracteresque casamum padrão
pattern match.?*^$|[]{}()
Meta caracteres. Ponto Representante
[] Lista Representante
[^] Lista Negada Representante
? Opcional Quantificador
* Asterisco Quantificador
+ Mais Quantificador
{} Chaves Quantificador
Meta caracteres
^ Circunflexo Âncora
$ Cifrão Âncora
\ Escape
| Ou
Ponto
O coringa
n.o● não● não● noo● n.o● n o● entendo
ListaLista
A exigenteA exigente
[gr]ato● gato● rato● grato
[012][0123456789]:[012345][0123456789]
[0-2][0-9]:[0-5][0-9]
Intervalos em listas
Lista Negada
● O contrário da lista
[^0-9] – Qualquer coisa, exceto um número
??O opcionalO opcional
casa[sr]?
● casas● casar● casa● casasr
* AsteriscoO tanto faz
8*
● 89abc● 8● 88● 888● 8888....
MaisMaisO tem que ter +O tem que ter +
GO+LGO+LGOLGOL
GOOLGOOLGOOOLGOOOL
GOOOOOOOOOOOLGOOOOOOOOOOOL
GLGL
?
Chaves {}O controle
go{1,4}l● gol● gool● goool● gooool
Curiosidades sobre as chaves
{0,1} zero até um Igual ao opcional
{0,} zero ou mais Igual ao asterisco
{1,} um ou mais Igual ao mais
Âncoras
● ^ Circunflexo– O início
● $ Cifrão– O fim
Minha casa
^casa$^casa$
EXEMPLO
Expressões Regulares em Java
● A classe String em java tem suporte built-in a expressões regulares
String nome = "luís";
if (nome.matches("[l]u[íi][sz]") {
}
Expressões Regulares em PHP
● Em PHP a função ereg é utilizada para casar expressões regulares
$nome = "luís";
if (ereg("[l]u[íi][sz]", $nome)) {
}
E agora?
Gratuito Pago
Links
● Guia de Expressões Regulares:http://aurelio.net/regex/guia/
● Testador de Expressões Regulareshttp://regex101.com/
Obrigado!