expressões regulares

Post on 20-Jun-2015

6.058 Views

Category:

Education

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

Apresentação feita ao CEJUG (Grupo de Usuários Java do Ceará) no evento Café com Tapioca no dia 26/05/2012.

TRANSCRIPT

Expressões Regularesno cotidiano

Rafael Santiago

Tópicos

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

Objetivo

Objetivo

Dizer algo abrangente de uma forma simplificada.

Tópicos

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

Utilização

Utilização

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

Foco em padrões!

Tópicos

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

História

História

• (1943)– Funcionamento dos neurônios

• (1950)– Stephen Cole Kleene

• Escreveu modelos desses estudos• Álgebra dos Conjuntos Regulares

História

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

História

• (1971)– Ken Thompson

• Unix ed

• (1973)– Aplicativo grep

• global / regular expression / print

História

• (1986)– Pacote regex

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

Tópicos

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

Conceito

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

Tópicos

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

Ferramentas

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

Semântica

• CPF• Data• Hora

Ferramentas

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

Casamento

PadrãoPalavra

Ferramentas

Metacaracteres

• 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

• Representantes• Quantificadores• Âncoras• Miscelâneas

Metacaracteres

• Representantes• Quantificadores• Âncoras• Miscelâneas

Metacaracteres

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

• Representantes• Quantificadores• Âncoras• Miscelâneas

Metacaracteres

• ? • *• +•{}

• Representantes• Quantificadores• Âncoras• Miscelâneas

Metacaracteres

• ^ (Início de linha)• $

• Representantes• Quantificadores• Âncoras• Miscelâneas

Metacaracteres

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

MetacaracteresMeta Mnemônico

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

( ) grupo\1 retrovisor

Atenção!Não confunda!

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

InterpretadorREGEX

API Java

• java.util.regex– Matcher– Pattern

• java.lang– String

API Java

• java.util.regex– Matcher– Pattern

• java.lang– String

Cria o Padrão

API Java

• java.util.regex– Matcher– Pattern

• java.lang– String

Busca o Padrão

API Java

• java.util.regex– Matcher– Pattern

• java.lang– String

• matches• replaceFirst• replaceAll

Tópicos

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

Exemplos

Validação de dados que seguem um certo formato

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

Validação com StringTokenizer

Validação com Substring da classe String

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

Aplicando máscaras com Pattern (Regex)

Critério de Aceitação

Tópicos

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

Por que usar ER?

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

Dúvidas?

Obrigado!Rafael Santiago

rmxsantiago@gmail.comhttp://br.linkedin.com/in/rmxsantiago

top related