SlideShare une entreprise Scribd logo
1  sur  29
Regular Expressions (Regex) Daniel   Carneiro
Regular Expressions ,[object Object]
Primeira aparição no QED em 1966
Utilizado em vários editores e ferramentas atuais, principalmente em ambiente unix.
Possui extensões ao padrão original. Ex: Perl Compatible Reguar Extenstion (PCRE)
Pattern / Matcher ,[object Object]
Matcher -> executa as expressoes
Literais ,[object Object]
Depende de opções como case-insensitive Regex Padrão def abc def ghi a J a ck is  a  boy
Caracteres especiais ,[object Object]
Caracteres não-imprimíveis Caracter Código  Horizontal Tab (0x09)  Carriage Return (0x0d)  New Line (0x0a)  Bell (0x07)  Escape (0x1b)  Form Feed (0x0c)  Vertical Tab(0x0b) 00 Caracter (0x00) FFFF Unicode (0xffff)
Classes de caracteres ,[object Object]
São denotados com uma lista de caracteres entre colchetes: [abc] ,[object Object],[object Object]
Classes de caracteres (cont.) ,[object Object]
Classes de caracteres (cont.) Classe Expressão  Word Character [A-Za-z0-9]  Non Word Character  [^A-Za-z0-9]  Whitespace Character [ ]  Non Whitespace Character [ ]  Digit [0-9]  Non Digit [^0-9]
Ponto ,[object Object]
Reconhece todos os caracteres com excessão de nova linha
Single-line mode altera este comportamento
Ancoras ,[object Object]
$ define o final da linha (ou da string) ,[object Object],[object Object]
 também é uma ancora que valida os limites das palavras
Alternação ,[object Object]
É o metacaracter de menor prioridade ou seja ”cao|gato” significa ”cao”  ou  ”gato”
Cuidado com a ordem das expressões: ”Get|GetValue” é valido para ”GetValue” e ”GetXXX”
Item opcional ,[object Object]
Repetição ,[object Object]
”*” é equivalente a ”{0,}” e ”+” é equivalente a ”{1,}”
Repetição (cont.) ,[object Object]
Repetição (cont.) ,[object Object]

Contenu connexe

Similaire à Regex (20)

Minicurso de Expressões Regulares (REGEX)
Minicurso de Expressões Regulares (REGEX)Minicurso de Expressões Regulares (REGEX)
Minicurso de Expressões Regulares (REGEX)
 
Expressões Regulares - Parte II
Expressões Regulares - Parte IIExpressões Regulares - Parte II
Expressões Regulares - Parte II
 
Regex
RegexRegex
Regex
 
Introdução à MEAN Stack
Introdução à MEAN StackIntrodução à MEAN Stack
Introdução à MEAN Stack
 
Php
PhpPhp
Php
 
Curso De Shell Aula 5
Curso De Shell   Aula 5Curso De Shell   Aula 5
Curso De Shell Aula 5
 
Apostila condição se visu alg
Apostila condição se visu algApostila condição se visu alg
Apostila condição se visu alg
 
Comandos e expressões
Comandos e expressõesComandos e expressões
Comandos e expressões
 
Aula02 Desenvolvimento em Ambiente Web - CSS 3
Aula02 Desenvolvimento em Ambiente Web - CSS 3Aula02 Desenvolvimento em Ambiente Web - CSS 3
Aula02 Desenvolvimento em Ambiente Web - CSS 3
 
tmn - Introdução ao JavaScript
tmn - Introdução ao JavaScripttmn - Introdução ao JavaScript
tmn - Introdução ao JavaScript
 
pSets TSI32B - Estrutura, Pesquisa e Ordenação de Dados (TSI UTFPR-Toledo)
pSets TSI32B - Estrutura, Pesquisa e Ordenação de Dados (TSI UTFPR-Toledo)pSets TSI32B - Estrutura, Pesquisa e Ordenação de Dados (TSI UTFPR-Toledo)
pSets TSI32B - Estrutura, Pesquisa e Ordenação de Dados (TSI UTFPR-Toledo)
 
Regular Expressions - PET presentation
Regular Expressions - PET presentationRegular Expressions - PET presentation
Regular Expressions - PET presentation
 
04 - C# laços de repetição, vetores e matrizes v1.0
04 - C# laços de repetição, vetores e matrizes v1.004 - C# laços de repetição, vetores e matrizes v1.0
04 - C# laços de repetição, vetores e matrizes v1.0
 
PHP - Strings
PHP - StringsPHP - Strings
PHP - Strings
 
Canivete shell
Canivete shellCanivete shell
Canivete shell
 
Canivete shell
Canivete shellCanivete shell
Canivete shell
 
Linguagem R
Linguagem RLinguagem R
Linguagem R
 
Ruby on rails gds 2011
Ruby on rails   gds 2011Ruby on rails   gds 2011
Ruby on rails gds 2011
 
PHP
PHPPHP
PHP
 
Curso Ruby
Curso RubyCurso Ruby
Curso Ruby
 

Plus de dcarneir

Introdução ao desenvolvimento em hardware
Introdução ao desenvolvimento em hardwareIntrodução ao desenvolvimento em hardware
Introdução ao desenvolvimento em hardwaredcarneir
 
Certificados digitais
Certificados digitaisCertificados digitais
Certificados digitaisdcarneir
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scriptingdcarneir
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scriptingdcarneir
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scriptingdcarneir
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scriptingdcarneir
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scriptingdcarneir
 
Bancos de dados No-SQL e afins
Bancos de dados No-SQL e afinsBancos de dados No-SQL e afins
Bancos de dados No-SQL e afinsdcarneir
 

Plus de dcarneir (13)

Introdução ao desenvolvimento em hardware
Introdução ao desenvolvimento em hardwareIntrodução ao desenvolvimento em hardware
Introdução ao desenvolvimento em hardware
 
Redshift
RedshiftRedshift
Redshift
 
Bitcoin
BitcoinBitcoin
Bitcoin
 
Certificados digitais
Certificados digitaisCertificados digitais
Certificados digitais
 
Awk
AwkAwk
Awk
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scripting
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scripting
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scripting
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scripting
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scripting
 
FLOSS
FLOSSFLOSS
FLOSS
 
IPv6
IPv6IPv6
IPv6
 
Bancos de dados No-SQL e afins
Bancos de dados No-SQL e afinsBancos de dados No-SQL e afins
Bancos de dados No-SQL e afins
 

Regex

Notes de l'éditeur

  1. Ex: Editor de texto Serve tanto para busca como para replace Além de expressoes possue variantes: Posix, PCRE, Java, .Net Formado por sequencias e metacaracteres
  2. Em java podem ser utilizados teoria dos conjuntos
  3. Java -> Posix Expressions
  4. Dot é o mais error-prone Não é meta dentro de [ ]
  5.  -> ancora de tamanho zero
  6. Primeiro executará ”.” até o fim e depois volta (backtrack) até ”</EM>” -> Demonstrar
  7. Referencias podem ser utilizadas em editores para a substituicao de palavras
  8. - Exemplo interessante -  -> necessário para separar palavra (backtrack) - grupo de captura é sobrescrito pela última captura - (x)(y) -> 21
  9. Grupo atomo e qualificadores possessivos sao equivalentes Demonstrar backtrack -> depois de encontrar bc, esquece o backreference e c nao valida
  10. Apenas um teste, não é incluído no resultado da busca
  11. Somente retorna ”q” na expressão diferente do exemplo da classe que retorna qu
  12. Otimizando 1 -> pode-se remover  pois ja foi encontrado no lookahea Otimizando 2 -> w{0,3} é mais eficiente que w*