Fábio Cruz B. de Albuquerque

Slides:



Advertisements
Apresentações semelhantes
Componentes ASP.NET Validação – Parte 2
Advertisements

Faculdades Integradas Santa Cruz
Matemática Computacional
Módulo II – Domine a Internet Introdução a Informática DCC - UFMG.
HTML - HiperText Markup Language Tecnologia para Web
Java Básico Orientação a Objeto Marco Antonio Software Architect Fev/2008.
II – Análise léxica DEI Papel do analisador léxico.
Especificação de Consultas
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS INTRODUÇÃO AOS APLICATIVOS JAVA Prof. Thiago Pereira Rique
INTRODUÇÃO AOS APLICATIVOS JAVA
Shell Script Professor: João Paulo
Encontro Linguagem HTML; 13. Hospedagem na WWW.
Linguagem PHP Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Geórgia Maria e Maria das Graças
Curso de Programação em C++
Fundamentos de WEB - HTML, CSS e JS
1 Laboratório de Programação de Computadores II 2º Semestre/2009 Prof. Mauro César Lopes.
Referências Bibliográficas.
Estrutura da Monografia.
Curso de Jornalismo e Ciências da Comunicação
Introdução a Programação JAVA
Trabalho sobre Shell Script
C# Documentando código em XML Sharp Shooters.NET Universidade Federal de Pernambuco Centro de Informática Recife, 10/10/2002 Autor: Marden Menezes Costa.
Programação Web com PHP
A Linguagem HTML.
Bit 2 Bit Study Group – Entendendo e aplicando expressões regulares em C# - Parte 1 Lorival.
Formatação de parágrafo
Aplicativos Web Com Orientação a Objetos
HTML Técnicas em Programação para Internet
Aula PHPdoc Prof. Naércio Filho Técnico em Informática
Dicas para pesquisas no Google
Tecnologias Web Prof. Msc. Juliano Gomes Weber Tecnologias Web Notas de Aula – Aula 10 1º Semestre UNIJUÍ.
HTML Construindo páginas.
CADEIA DE CARACTERES (Strings)
IX- ENCONTRO DIDÁTICO CIENTÍFICO DO CURSO DE MEDICINA DA UFOP
1ª Aula de Html Íria Albuquerque.
Projeto de Pesquisa.
Tarefa 02 Visual Studio 2005 Visual C# Programa Hello World.
Introdução a aplicativos Java
1 C# O tipo System.String Sharp Shooters.NET Universidade Federal de Pernambuco Centro de Informática Recife, 05/09/2002 Autor: Marden Menezes Costa.
Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery.
Escola de Engenharia de Piracicaba Sistemas de Apoio a Decisão
Introdução à programaçao em PERL Levi Lúcio, Vasco Amaral, Programação em PERL, FCA-Editora de Informática.
Analise sintática aula-07-analise-sintática.pdf.
Expressões Regulares no cotidiano Rafael Santiago.
CONFIGURANDO TRABALHO NO WORD 2003 a 2007 (NORMAS DA ABNT)
DESENVOLVIMENTO WEB I HTML Tabelas. Tabelas servem para organizar!!!  Usamos tabelas para organizar conteúdos que tenham relação entre si, procurando.
Ceça Moraes – Introdução à Programação SI1
Definições de Esquemas, Restrições básicas e buscas
Expressões Regulares – Estruturas de Dicionários
Tipos de Dados Operadores
Acabias Marques Luiz. II – Strings, objetos e classes Parte 1 – Introdução a linguagem  Strings  Objetos, classes e métodos  Convertendo entre classes.
Ceça Moraes – Introdução à Programação SI1
Análise Léxica Prof. Alexandre Monteiro
BC Processamento da Informação Teoria Bacharelado em Ciência e Tecnologia String Prof. Edson Pinheiro Pimentel 1° Quadrimestre.
Linguagens Web - Cliente Aula 2 Introdução ao HTML e XHTML Prof. Gilmar Medeiros – Fevereiro/2010 Instituto Metodista Izabela Hendrix Curso de Tecnologia.
Programação I Aula 1 Prof. Gilberto Irajá Müller Última atualização 2/3/2009.
7 - Criação de Páginas Web
Linguagem de Programação JAVA
Autoria WEB Prof. Thiago Nogueira Tolentino Barbosa
TÍTULO DO TRABALHO Nome dos autores Instituição de Origem INTRODUÇÃO DESENVOLVIMENTO CONSIDERAÇÕES FINAIS REFERÊNCIAS BIBLIOGRÁFICAS Introdução,
Linguagem C.
Sistemas de Informação (Projeto Aplicado à Gerência de Redes ) DOCENTE José Nelson Falavinha Junior DISCENTES José Ricardo de Paula Carlos Roberto de Oliveira.
Modelo e Normas para Elaboração de Trabalhos Científicos
Karine Alessandra Córdova
LINGUAGEM DE PROGRAMAÇÃO HTML COMPONENTES: ROBSON EDMILSON.
MatLab (Matrix Laboratory)
1 Prof. Esp. Andrew Rodrigues HTML.
Editoração do TCC Disciplina: TCC II - Trabalho de Conclusão de Curso II Profa. Gabriela Dourado e Karla Resende.
Expressões Regulares Junho, Expressões Regulares Uma Expressão Regular (ER), aka REGEX, é um método formal de se especificar um padrão de texto.
Transcrição da apresentação:

Fábio Cruz B. de Albuquerque Expressões Regulares Fábio Cruz B. de Albuquerque fabiocbalbuquerque@gmail.com

Introdução

Definições Basicamente, podemos dizer algo abrangente de forma específica. Definindo um padrão de busca, temos uma lista de possibilidades. “Como o brinquedo LEGO, várias pecinhas diferentes, cada uma com sua característica, que juntas compõem estruturas completas e podem ser arranjadas com infinitas combinações diferentes.” Expressões Regulares são metacaracteres que casam um padrão. É uma maneira de procurar um texto especificando padrões. Padrões para validar data, horário, número IP, e-mail, RG, CPF, telefones... Exemplo: ER para números de telefones => ([0-9]{2})? [0-9]{4}-[0-9]{4}. Casa qualquer uma das strings: “83 3224-1063”, “83 3254-3421”, “82 2343-1212”...

História O termo deriva do que se chamou de álbegra de conjuntos regulares (“regular sets”), do matemático Stephen Cole Kleene. 1968, Ken Thompson implementava no qed um comando de contexto que aceitava expressões regulares. Sua sintaxe? g/RE/p (Global Regular Expression Print)... Mais tarde deu origem ao famoso grep nos sistemas Unix. 1986, criado um pacote pioneiro em C, chamado regex e de graça! Daí a norma IEEE POSIX 1003.2 (POSIX.2) padroniza expressões regulares.

Os Metacaracteres

Sopa de letrinhas Metacaractere Nome . Ponto [ ] Lista [^] Lista negada ? Opcional * Asterisco + Mais { } Chaves Metacaractere Nome ^ Circunflexo $ Cifrão \b Borda \ Escape | Ou (pipe) ( ) Grupo \1 Retrovisor

Sopa de letrinhas – exemplos Miller, Miler, Müler, Müller, Mueler, Mueller: M(ü|i|ue)ll?er Siglas de 4 letras, começando com UF: UF[A-Z]{2} Tags HTML <b>, </b>, <i>, </i>, <u>, </u>: </?[BbUuIi]> Títulos (primeira linha não pontuada): ^[A-Za-z0-9 ]+$ Palavras: \b[A-Za-z]+\b

Padrões POSIX Classe POSIX Similar Significa [:upper:] [A-Z] Letras maiúsculas [:lower:] [a-z] Letras minúsculas [:alpha:] [A-Za-z] Maiúsculas/Minúsculas [:alnum:] [A-Za-z0-9] Letras e números [:digit:] [0-9] Números [:xdigit:] [0-9A-Fa-f] Números Hexadecimais [:punct:] [.,!?:...] Sinais de pontuação [:blank:] [ \t] Espaço e TAB [:space:] [ \t\n\r\f\v] Caracteres brancos

(Alguns m|M)etacaracteres tipo barra-letra Classe POSIX Similar Significa \d [[:digit:]] Dígito \D [^[:digit:]] Não-dígito \w [[:alnum:]_] Palavra \W [^[:alnum:]_] Não-palavra \s [[:space:]] Branco \S [^[:space:]] Não-branco

Editores de texto (Google docs e vim) Editores de texto e Linguagens Editores de texto (Google docs e vim) Google Docs

Editores de texto (Google docs e vim)

Editores de texto (Google docs e vim) Google Docs – observações Não há classes POSIX (como [:alpha:]), \w, e [A-Z] não suporta acentuação. Solução? [A-Za-zÀ-u]+ (Posições 65 a 90, 97 a 122 e 192 a 252 da tabela ASCII). A opção ‘Match hole world only’ (‘Fazer correspondência somente da palavra inteira’) não casará palavras acentuadas ou com ‘ç’. Retrovisores são referenciados por $1, $2... na expressão de substituição, mas na ER utiliza-se \1, \2... Por exemplo, palavras repetidas ([A-Za-z]+) \1 Quebras de linha e paragráfos podem ser identificados com \n, assim as ERs podem casar múltiplas linhas de uma vez. Editores de texto (Google docs e vim)

Editores de texto (Google docs e vim) Editores de texto e Linguagens Editores de texto (Google docs e vim) Java

Editores de texto (Google docs e vim) Java Na J2SE 1.4 aparecem o pacote java.util.regex e classes Pattern e Matcher, além de algumas melhorias na classe java.lang.String (com os métodos matches, replaceFirst, replaceAll, split). Classe String Editores de texto (Google docs e vim)

Editores de texto (Google docs e vim) Java Classes Pattern e Matcher Editores de texto (Google docs e vim)

Editores de texto (Google docs e vim) Exemplos Data (dd/mm/aaaa) ../../.. [0-9]{2}/[0-9]{2}/[0-9]{4} [0123][0-9]/[01][0-9]/[12][0-9]{3} ([012][0-9]|3[0-1])/([0[0-9]|1[012])/[12][0-9]{3} (0[1-9]|[12][0-9]|3[01])/0[0-9]|1[012])/[12][0-9]{3} Horário (hh:mm) ..:.. [0-9]{2}:[0-9]{2} [012][0-9]:[0-5][0-9] ([01][0-9]|2[0-3]):[0-5][0-9] Email (email@company.com) .*@.* [^@]+@[^@]+.[.*] [A-Za-z0-9_.-]+@[A-Za-z0-9_]+\.[a-z]+ [A-Za-z0-9_.-]+@[A-Za-z0-9_]+\.[a-z]{2,3} Editores de texto (Google docs e vim)

Bibliografia Referências +info Jargas, Aurélio Marinho. Expressões Regulares: Uma abordagem divertida. Ed. Novatec, 3ª edição. São Paulo, 2009. Referências Blog do Autor do livro Expressões Regulares: http://aurelio.wordpress.com/2009/07/17/10anos-expressoes-regulares/ Site oficial do livro Expressões Regulares: http://www.piazinho.com.br/ Expressão regular: http://pt.wikipedia.org/wiki/Express%C3%A3o_regular +info Expressões regulares com PHP e Python: http://blog.rafaelcapucho.com/expressoes-regulares/expressoes-regulares-com-php-e-python-na-pratica.html Expressões regulares com Ruby: http://wiki.cercomp.ufg.br/Equipe_Web/RoR/Express%C3%A3o_Regular Mini-Curso de Expressões Regulares: http://www.brasiltech.net/informatiquez/2008/04/09/mimi-curso-de-expressoes-regulares-entenda-como-funciona-parte-1/ Exemplos do livro Expressões Regulares: http://www.piazinho.com.br/exemplos.html

Imagens [1] http://www.cutroni.com/blog/wp-content/uploads/2007/12/peg.jpg [2] http://www.brasiltech.net/informatiquez/wp-content/uploads/2008/04/regexbuddy.gif [3] http://www.tiresias.org/research/images/pen_pencil.jpg [4] http://www.guanabara.info/wp-content/uploads/2009/06/melhores_livros1.jpg