Expressões Regulares
     no 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
Ferramentas

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

                           • CPF
                           • Data
                           • Hora
Ferramentas
                              Casamento
•   Metacaracteres
•   Padrão (Pattern)
•   Combinação (Match)
•   Interpretador de ER

                          Palavra   Padrão
Metacaracteres
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

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

•   Quantificadores
•   Âncoras
•   Miscelâneas
Metacaracteres

•   Representantes    •?
                      •*
•   Quantificadores   •+
                      •{}
•   Âncoras
•   Miscelâneas
Metacaracteres

•   Representantes
•   Quantificadores
                      • ^ (Início de linha)
•   Âncoras           •$

•   Miscelâneas
Metacaracteres

•   Representantes
•   Quantificadores
•   Âncoras
                      •  (escape)
•   Miscelâneas       • | (ou)
                      • (...) (grupo)
Metacaracteres
          Meta     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
Interpretador
    REGEX
API Java
• java.util.regex
  – Matcher
  – Pattern


• java.lang
  – String
API Java
• java.util.regex         Cria o Padrão

  – Matcher
  – Pattern


• java.lang
  – String
API Java
• java.util.regex
  – Matcher                    Busca o Padrão

  – Pattern


• java.lang
  – String
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.com
http://br.linkedin.com/in/rmxsantiago

Expressões regulares

  • 1.
    Expressões Regulares no cotidiano Rafael Santiago
  • 2.
    Tópicos • Objetivo • Utilização • História • Conceito • Ferramentas • Exemplos
  • 3.
  • 4.
    Objetivo Dizer algo abrangentede uma forma simplificada.
  • 5.
    Tópicos • Objetivo • Utilização • História • Conceito • Ferramentas • Exemplos
  • 6.
  • 7.
    Utilização • Substituição • Validação • Realce de Sintaxe • Filtragem de informação Foco em padrões!
  • 8.
    Tópicos • Objetivo • Utilização • História • Conceito • Ferramentas • Exemplos
  • 9.
  • 10.
    História • (1943) – Funcionamento dos neurônios • (1950) – Stephen Cole Kleene • Escreveu modelos desses estudos • Álgebra dos Conjuntos Regulares
  • 11.
    História • (1965 -1966) – Implementado QED (Quick EDitor) – Padrões em arquivos de texto – SDS 940
  • 12.
    História • (1971) – Ken Thompson • Unix ed • (1973) – Aplicativo grep • global / regular expression / print
  • 13.
    História • (1986) – Pacote regex • Pioneiro • Escrito na linguagem C • De graça!
  • 14.
    Tópicos • Objetivo • Utilização • História • Conceito • Ferramentas • Exemplos
  • 15.
  • 16.
    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
  • 17.
    Tópicos • Objetivo • Utilização • História • Conceito • Ferramentas • Exemplos
  • 18.
  • 19.
    Ferramentas • Metacaracteres • Padrão (Pattern) Semântica • Combinação (Match) • Interpretador de ER • CPF • Data • Hora
  • 20.
    Ferramentas Casamento • Metacaracteres • Padrão (Pattern) • Combinação (Match) • Interpretador de ER Palavra Padrão
  • 21.
  • 22.
    Metacaracteres • O quesão metacaracteres? São caracteres que possuem um significado especial (ao invés do significado literal) em um programa de computador.
  • 23.
    Metacaracteres • Representantes • Quantificadores • Âncoras • Miscelâneas
  • 24.
    Metacaracteres • . (Ponto) • Representantes • [...] Lista • Quantificadores • Âncoras • Miscelâneas
  • 25.
    Metacaracteres • Representantes •? •* • Quantificadores •+ •{} • Âncoras • Miscelâneas
  • 26.
    Metacaracteres • Representantes • Quantificadores • ^ (Início de linha) • Âncoras •$ • Miscelâneas
  • 27.
    Metacaracteres • Representantes • Quantificadores • Âncoras • (escape) • Miscelâneas • | (ou) • (...) (grupo)
  • 28.
    Metacaracteres Meta Mnemônico . ponto [] lista [^] lista negada ? opcional * asterisco + mais {} chaves ^ circunflexo $ cifrão b borda escape | ou () grupo 1 retrovisor
  • 29.
    Atenção! Não confunda! • Na linha de comando – ? e o * são curingas – Especificam nomes de arquivos
  • 30.
  • 31.
    API Java • java.util.regex – Matcher – Pattern • java.lang – String
  • 32.
    API Java • java.util.regex Cria o Padrão – Matcher – Pattern • java.lang – String
  • 33.
    API Java • java.util.regex – Matcher Busca o Padrão – Pattern • java.lang – String
  • 34.
    API Java • java.util.regex – Matcher – Pattern • java.lang – String • matches • replaceFirst • replaceAll
  • 35.
    Tópicos • Objetivo • Utilização • História • Conceito • Ferramentas • Exemplos
  • 36.
  • 37.
    Validação de dadosque seguem um certo formato • Verificar se o formato é válido • Aplicar máscara • Critérios de Aceitação
  • 38.
  • 39.
    Validação com Substringda classe String
  • 40.
    Validação com ReplaceAllda classe String (Regex)
  • 41.
    Aplicando máscaras comPattern (Regex)
  • 42.
  • 43.
    Tópicos • Objetivo • Utilização • História • Conceito • Ferramentas • Exemplos
  • 44.
  • 45.
    Por que usarER? • Redução de código • Facilidade de manutenção • Otimizar buscas feitas em funções de busca/substituição em editores de texto
  • 46.
  • 47.
    Obrigado! Rafael Santiago rmxsantiago@gmail.com http://br.linkedin.com/in/rmxsantiago