abordagem divertida sobre expressões regulares

Post on 21-Jul-2015

64 Views

Category:

Software

5 Downloads

Preview:

Click to see full reader

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!

top related