SlideShare une entreprise Scribd logo
1  sur  47
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

Contenu connexe

Similaire à Expressões regulares

Ruby on rails gds 2011
Ruby on rails   gds 2011Ruby on rails   gds 2011
Ruby on rails gds 2011
JogosUnisinos
 
Php, eu escolho você! @ UFJF
Php, eu escolho você! @ UFJFPhp, eu escolho você! @ UFJF
Php, eu escolho você! @ UFJF
Claudson Oliveira
 
Python - Guia de bolso
Python - Guia de bolsoPython - Guia de bolso
Python - Guia de bolso
Jean Lopes
 
TDC 2011 Goiânia: Evolução da linguagem de programação JavaScript
TDC 2011 Goiânia: Evolução da linguagem de programação JavaScriptTDC 2011 Goiânia: Evolução da linguagem de programação JavaScript
TDC 2011 Goiânia: Evolução da linguagem de programação JavaScript
Rogério Moraes de Carvalho
 
Aula 02 operadores aritiméticos
Aula 02   operadores aritiméticosAula 02   operadores aritiméticos
Aula 02 operadores aritiméticos
Tácito Graça
 

Similaire à Expressões regulares (20)

Três anos de Scala no NewsMonitor
Três anos de Scala no NewsMonitorTrês anos de Scala no NewsMonitor
Três anos de Scala no NewsMonitor
 
Ruby on rails gds 2011
Ruby on rails   gds 2011Ruby on rails   gds 2011
Ruby on rails gds 2011
 
ANTLR & ANTTLRWorks
ANTLR & ANTTLRWorksANTLR & ANTTLRWorks
ANTLR & ANTTLRWorks
 
Félix do Carmo e Luís Trigo - Tradutores e máquinas de tradução
Félix do Carmo e Luís Trigo - Tradutores e máquinas de traduçãoFélix do Carmo e Luís Trigo - Tradutores e máquinas de tradução
Félix do Carmo e Luís Trigo - Tradutores e máquinas de tradução
 
Php, eu escolho você! @ UFJF
Php, eu escolho você! @ UFJFPhp, eu escolho você! @ UFJF
Php, eu escolho você! @ UFJF
 
PHP, eu escolho você ! @ Vianna Júnior JF
PHP, eu escolho você !  @ Vianna Júnior JFPHP, eu escolho você !  @ Vianna Júnior JF
PHP, eu escolho você ! @ Vianna Júnior JF
 
Histórico de linguagens e definições (foco em classes)
Histórico de linguagens e definições (foco em classes)Histórico de linguagens e definições (foco em classes)
Histórico de linguagens e definições (foco em classes)
 
Python - Guia de bolso
Python - Guia de bolsoPython - Guia de bolso
Python - Guia de bolso
 
Paradigmas de Linguagens de Programação: Conceitos de PHP
Paradigmas de Linguagens de Programação: Conceitos de PHPParadigmas de Linguagens de Programação: Conceitos de PHP
Paradigmas de Linguagens de Programação: Conceitos de PHP
 
Flash ActionScript 3
Flash ActionScript 3Flash ActionScript 3
Flash ActionScript 3
 
Introdução a Python
Introdução a PythonIntrodução a Python
Introdução a Python
 
Workshop ExtJS4
Workshop ExtJS4Workshop ExtJS4
Workshop ExtJS4
 
Regex
RegexRegex
Regex
 
Latex
LatexLatex
Latex
 
Introdução ao LaTeX (SECCOM 2012)
Introdução ao LaTeX (SECCOM 2012)Introdução ao LaTeX (SECCOM 2012)
Introdução ao LaTeX (SECCOM 2012)
 
Minicurso de Rails - WTISC 2014
Minicurso de Rails - WTISC 2014Minicurso de Rails - WTISC 2014
Minicurso de Rails - WTISC 2014
 
TDC 2011 Goiânia: Evolução da linguagem de programação JavaScript
TDC 2011 Goiânia: Evolução da linguagem de programação JavaScriptTDC 2011 Goiânia: Evolução da linguagem de programação JavaScript
TDC 2011 Goiânia: Evolução da linguagem de programação JavaScript
 
Processo de Desenvolvimento de Software - Linguagens Imperativas x Declarativas
Processo de Desenvolvimento de Software - Linguagens Imperativas x DeclarativasProcesso de Desenvolvimento de Software - Linguagens Imperativas x Declarativas
Processo de Desenvolvimento de Software - Linguagens Imperativas x Declarativas
 
Aula 02 operadores aritiméticos
Aula 02   operadores aritiméticosAula 02   operadores aritiméticos
Aula 02 operadores aritiméticos
 
Clean code
Clean codeClean code
Clean code
 

Dernier

Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
AntonioVieira539017
 
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffffSSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
NarlaAquino
 
8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito
tatianehilda
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
FabianeMartins35
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
PatriciaCaetano18
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
CleidianeCarvalhoPer
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
marlene54545
 

Dernier (20)

Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasJogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
 
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVAEDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
 
Seminário Biologia e desenvolvimento da matrinxa.pptx
Seminário Biologia e desenvolvimento da matrinxa.pptxSeminário Biologia e desenvolvimento da matrinxa.pptx
Seminário Biologia e desenvolvimento da matrinxa.pptx
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
Araribá slides 9ano.pdf para os alunos do medio
Araribá slides 9ano.pdf para os alunos do medioAraribá slides 9ano.pdf para os alunos do medio
Araribá slides 9ano.pdf para os alunos do medio
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
 
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
 
Produção de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptxProdução de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptx
 
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdfTCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffffSSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
 
8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
 

Expressões regulares

  • 1. Expressões Regulares no cotidiano Rafael Santiago
  • 2. Tópicos • Objetivo • Utilização • História • Conceito • Ferramentas • Exemplos
  • 4. Objetivo Dizer algo abrangente de uma forma simplificada.
  • 5. Tópicos • Objetivo • Utilização • História • Conceito • Ferramentas • Exemplos
  • 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
  • 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
  • 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
  • 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
  • 22. 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.
  • 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. Interpretador REGEX
  • 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
  • 37. Validação de dados que seguem um certo formato • Verificar se o formato é válido • Aplicar máscara • Critérios de Aceitação
  • 39. Validação com Substring da classe String
  • 40. Validação com ReplaceAll da classe String (Regex)
  • 41. Aplicando máscaras com Pattern (Regex)
  • 43. Tópicos • Objetivo • Utilização • História • Conceito • Ferramentas • Exemplos
  • 45. 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
  • 47. Obrigado! Rafael Santiago rmxsantiago@gmail.com http://br.linkedin.com/in/rmxsantiago