Expressões Regulares no cotidiano Rafael Santiago.

47
Expressões Regulares no cotidiano Rafael Santiago

Transcript of Expressões Regulares no cotidiano Rafael Santiago.

Page 1: Expressões Regulares no cotidiano Rafael Santiago.

Expressões Regularesno cotidiano

Rafael Santiago

Page 2: Expressões Regulares no cotidiano Rafael Santiago.

Tópicos

• Objetivo• Utilização• História• Conceito• Ferramentas• Exemplos

Page 3: Expressões Regulares no cotidiano Rafael Santiago.

Objetivo

Page 4: Expressões Regulares no cotidiano Rafael Santiago.

Objetivo

Dizer algo abrangente de uma forma simplificada.

Page 5: Expressões Regulares no cotidiano Rafael Santiago.

Tópicos

• Objetivo• Utilização• História• Conceito• Ferramentas• Exemplos

Page 6: Expressões Regulares no cotidiano Rafael Santiago.

Utilização

Page 7: Expressões Regulares no cotidiano Rafael Santiago.

Utilização

• Substituição• Validação• Realce de Sintaxe• Filtragem de informação

Foco em padrões!

Page 8: Expressões Regulares no cotidiano Rafael Santiago.

Tópicos

• Objetivo• Utilização• História• Conceito• Ferramentas• Exemplos

Page 9: Expressões Regulares no cotidiano Rafael Santiago.

História

Page 10: Expressões Regulares no cotidiano Rafael Santiago.

História

• (1943)– Funcionamento dos neurônios

• (1950)– Stephen Cole Kleene

• Escreveu modelos desses estudos• Álgebra dos Conjuntos Regulares

Page 11: Expressões Regulares no cotidiano Rafael Santiago.

História

• (1965 - 1966)– Implementado QED (Quick EDitor)– Padrões em arquivos de texto– SDS 940

Page 12: Expressões Regulares no cotidiano Rafael Santiago.

História

• (1971)– Ken Thompson

• Unix ed

• (1973)– Aplicativo grep

• global / regular expression / print

Page 13: Expressões Regulares no cotidiano Rafael Santiago.

História

• (1986)– Pacote regex

• Pioneiro• Escrito na linguagem C• De graça!

Page 14: Expressões Regulares no cotidiano Rafael Santiago.

Tópicos

• Objetivo• Utilização• História• Conceito• Ferramentas• Exemplos

Page 15: Expressões Regulares no cotidiano Rafael Santiago.

Conceito

Page 16: Expressões Regulares no cotidiano Rafael Santiago.

Conceito

Em ciência da computação, uma expressão regular (ou o estrangeirismo regex, abreviação do inglês regular expression) provê uma forma concisa e flexível de identificar cadeias de caracteres de interesse, como caracteres particulares, palavras ou padrões de caracteres. Expressões regulares são escritas numa linguagem formal que pode ser interpretada por um processador de expressão regular, um programa que ou serve um gerador de analisador sintático ou examina o texto e identifica partes que casam com a especificação dada.

Wikipedia – 24/04/2012

Page 17: Expressões Regulares no cotidiano Rafael Santiago.

Tópicos

• Objetivo• Utilização• História• Conceito• Ferramentas• Exemplos

Page 18: Expressões Regulares no cotidiano Rafael Santiago.

Ferramentas

Page 19: Expressões Regulares no cotidiano Rafael Santiago.

• Metacaracteres• Padrão (Pattern)• Combinação (Match)• Interpretador de ER

Semântica

• CPF• Data• Hora

Ferramentas

Page 20: Expressões Regulares no cotidiano Rafael Santiago.

• Metacaracteres• Padrão (Pattern)• Combinação (Match)• Interpretador de ER

Casamento

PadrãoPalavra

Ferramentas

Page 21: Expressões Regulares no cotidiano Rafael Santiago.

Metacaracteres

Page 22: Expressões Regulares no cotidiano Rafael Santiago.

• O que são metacaracteres?

São caracteres que possuem um significado especial

(ao invés do significado literal) em um programa de

computador.

Metacaracteres

Page 23: Expressões Regulares no cotidiano Rafael Santiago.

• Representantes• Quantificadores• Âncoras• Miscelâneas

Metacaracteres

Page 24: Expressões Regulares no cotidiano Rafael Santiago.

• Representantes• Quantificadores• Âncoras• Miscelâneas

Metacaracteres

• . (Ponto)• [...] Lista

Page 25: Expressões Regulares no cotidiano Rafael Santiago.

• Representantes• Quantificadores• Âncoras• Miscelâneas

Metacaracteres

• ? • *• +•{}

Page 26: Expressões Regulares no cotidiano Rafael Santiago.

• Representantes• Quantificadores• Âncoras• Miscelâneas

Metacaracteres

• ^ (Início de linha)• $

Page 27: Expressões Regulares no cotidiano Rafael Santiago.

• Representantes• Quantificadores• Âncoras• Miscelâneas

Metacaracteres

• \ (escape)• | (ou)• (...) (grupo)

Page 28: Expressões Regulares no cotidiano Rafael Santiago.

MetacaracteresMeta Mnemônico

. ponto[] lista[^] lista negada? opcional* asterisco+ mais{ } chaves^ circunflexo$ cifrão\b borda\ escape| ou

( ) grupo\1 retrovisor

Page 29: Expressões Regulares no cotidiano Rafael Santiago.

Atenção!Não confunda!

• Na linha de comando– ? e o * são curingas– Especificam nomes de arquivos

Page 30: Expressões Regulares no cotidiano Rafael Santiago.

InterpretadorREGEX

Page 31: Expressões Regulares no cotidiano Rafael Santiago.

API Java

• java.util.regex– Matcher– Pattern

• java.lang– String

Page 32: Expressões Regulares no cotidiano Rafael Santiago.

API Java

• java.util.regex– Matcher– Pattern

• java.lang– String

Cria o Padrão

Page 33: Expressões Regulares no cotidiano Rafael Santiago.

API Java

• java.util.regex– Matcher– Pattern

• java.lang– String

Busca o Padrão

Page 34: Expressões Regulares no cotidiano Rafael Santiago.

API Java

• java.util.regex– Matcher– Pattern

• java.lang– String

• matches• replaceFirst• replaceAll

Page 35: Expressões Regulares no cotidiano Rafael Santiago.

Tópicos

• Objetivo• Utilização• História• Conceito• Ferramentas• Exemplos

Page 36: Expressões Regulares no cotidiano Rafael Santiago.

Exemplos

Page 37: Expressões Regulares no cotidiano Rafael Santiago.

Validação de dados que seguem um certo formato

• Verificar se o formato é válido• Aplicar máscara• Critérios de Aceitação

Page 38: Expressões Regulares no cotidiano Rafael Santiago.

Validação com StringTokenizer

Page 39: Expressões Regulares no cotidiano Rafael Santiago.

Validação com Substring da classe String

Page 40: Expressões Regulares no cotidiano Rafael Santiago.

Validação com ReplaceAll da classe String (Regex)

Page 41: Expressões Regulares no cotidiano Rafael Santiago.

Aplicando máscaras com Pattern (Regex)

Page 42: Expressões Regulares no cotidiano Rafael Santiago.

Critério de Aceitação

Page 43: Expressões Regulares no cotidiano Rafael Santiago.

Tópicos

• Objetivo• Utilização• História• Conceito• Ferramentas• Exemplos

Page 44: Expressões Regulares no cotidiano Rafael Santiago.

Por que usar ER?

Page 45: Expressões Regulares no cotidiano Rafael Santiago.

Por que usar ER?

• Redução de código• Facilidade de manutenção• Otimizar buscas feitas em funções de

busca/substituição em editores de texto

Page 46: Expressões Regulares no cotidiano Rafael Santiago.

Dúvidas?

Page 47: Expressões Regulares no cotidiano Rafael Santiago.

Obrigado!Rafael Santiago

[email protected]://br.linkedin.com/in/rmxsantiago