SlideShare uma empresa Scribd logo
1 de 15
Expressões
Regulares
Ricardo Paiva (Senior Developer @ Globo.com)
Propósito
g/<regular expression>/p
(a|b)*abb
● Linguagem de definição de padrões de pesquisa em
uma string
● Linguagem regular
Ferramentas onipresentes
Unix commands:
grep, sed, awk...
Linguagens de programação
C, Perl, Java, JavaScript, Perl, Ruby, PHP...
Bancos de dados
MySQL, Oracle, SQL Server, Virtuoso, Elastic
Search…
Ferramentas
Nginx, Apache...
Substring
Expressões Regulares fazem busca de substrings.
Por pardrão, é sensível a maiúsculas e minúsculas
re.search("ab", "aaabaaa") # True
re.search("zz", "aaabaaa") # False
re.search("AB", "aaabaaa") # False
re.search("Globo", "Globo.com") # True
Conjunto de Caracteres
[ ] : Define um conjunto de caracteres
- : Definir um intervalo de símbolos dentro do []
[abc] # Procura as letras 'a', 'b' ou 'c'
[,|] # Procura os símbolos ',' ou '|'
[1234] # Procura os numerais 1, 2, 3 ou 4
[0-9] # Procura por números
[a-z] # Procura por letras
[a-zA-Z0-9] # Procura por letras maiúsculas,
# minúsculas e números
Posição dos Caracteres
^ - Início da string
$ - Final da string
^a # string começa por a
^[a-z] # string começa por uma letra
[0-9]$ # termina por um número
^[0-9]$ # string contem apenas um número
^R[0-9] # começa pela letra 'R' seguida de um número
^$ # string vazia
Repetições
* - 0 ou mais repetições
+ - 1 ou mais repetições (pelo menos uma)
? - 0 ou nenhuma repetição
a*b # 'b' precedido ou não por vários 'a'
("b", "ab", "aab", "aaaab"...)
a[0-9]+ # 'a' seguido de pelo menos 1 número
-?[0-9] # um número precedido ou não por '-'
[a-z]+[,.!]? # Pelo menos 1 letra seguida ou não
pelos símbolos ',' ou '.' ou '?'
Quantidade de repetições
{n,m} - no mínimo n, no máximo m repetições
{n} - exatamente n repetições
{n,} - no mínimo n repetições
{,m} - até m repetições
[0-9]{2} # 2 dígitos
[a-z]{2,4} # no mínimo 2, no máximo 4 letras
R[0-9]{2,} # letra R seguida de pelo menos 2 dígitos
{0,} # o mesmo que *
{1,} # o mesmo que +
{0,1} # o mesmo que ?
Agrupamento em blocos
() - Agrupa parte da regra
nome(<br/>)? # palavra nome seguida ou não de <br/>
( ?[0-9])+ # lista de números
Conjuntos especiais
. - Para se referir a qualquer símbolo
[^] - Todos os símbolos menos os listados
<p>.+</p> # uma tag de parágrafo não vazia
http://techtudo.com.br/[^/]+/plantao/2.html
# path entre o domínio e a pasta /plantão
não pode ter /
Alternativa
| - Alterna entre 2 ou mais expressões dentro de ()
(avi|mpg)$ # Termina por avi ou mpg
(0?[1-9]|[1-2][0-9]|3[0-1]) # Número de 0 a 31
Escape
 - Elimina a natureza especial de um símbolo
.jpg$ # termina pelo símbolo "." seguido de jpg
([0-9]+) # um número cercado por ()
Módulo re do Python
import re
match = re.search("[0-9]", "notas: 7, 3, 6")
match.group(0) # 7
match.group(1) # IndexError
match = re.findall("[0-9]", "notas: 7, 3, 6")
match # [7, 3, 6] (uma lista)
re.split("[,;]", "aa,b;cc") # ["aa", "b", "cc"]
pattern = re.compile("$ [0-9]+")
pattern.match("$ 31")
pattern.match("$ 452")
Sequências especiais
d - equivalente a [0-9]
D - equivalente a [^0-9]
s - caracteres de espaço [ tnrfv]
w - equivalente a [a-zA-Z0-9_]
W - equivalente a [^a-zA-Z0-9_]
d,d # número com vírgula
w(.w)* # palavra seguida de 0 ou mais .palavra
Obrigado!
ricardo.paiva@corp.globo.com

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Perl Moderno, dia5
Perl Moderno, dia5Perl Moderno, dia5
Perl Moderno, dia5
 
Perl Moderno, dia4
Perl Moderno, dia4Perl Moderno, dia4
Perl Moderno, dia4
 
Perl Moderno, dia3
Perl Moderno, dia3Perl Moderno, dia3
Perl Moderno, dia3
 
Algoritmos e Estrutura de Dados - Aula 05
Algoritmos e Estrutura de Dados - Aula 05Algoritmos e Estrutura de Dados - Aula 05
Algoritmos e Estrutura de Dados - Aula 05
 
Perl Moderno, dia1
Perl Moderno, dia1Perl Moderno, dia1
Perl Moderno, dia1
 
Vetores, Matrizes e Strings em C Parte 3
Vetores, Matrizes e Strings em C Parte 3Vetores, Matrizes e Strings em C Parte 3
Vetores, Matrizes e Strings em C Parte 3
 
De bem com as expressões regulares
De bem com as expressões regularesDe bem com as expressões regulares
De bem com as expressões regulares
 
Haskell aula5 f.ordem-sup_modulos-cifra_cesar
Haskell aula5 f.ordem-sup_modulos-cifra_cesarHaskell aula5 f.ordem-sup_modulos-cifra_cesar
Haskell aula5 f.ordem-sup_modulos-cifra_cesar
 
Poo com php
Poo com phpPoo com php
Poo com php
 
Atribuições
AtribuiçõesAtribuições
Atribuições
 
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)
 
Haskell aula3 listas
Haskell aula3 listasHaskell aula3 listas
Haskell aula3 listas
 
Standard ML / CPN ML
Standard ML / CPN MLStandard ML / CPN ML
Standard ML / CPN ML
 
Aula 01 - Curso PHP e MySQL
Aula 01 - Curso PHP e MySQLAula 01 - Curso PHP e MySQL
Aula 01 - Curso PHP e MySQL
 
PHP Básico - Parte 3
PHP Básico - Parte 3PHP Básico - Parte 3
PHP Básico - Parte 3
 
Vetores, Matrizes e Strings em C Parte 1
Vetores, Matrizes e Strings em C Parte 1Vetores, Matrizes e Strings em C Parte 1
Vetores, Matrizes e Strings em C Parte 1
 
Estrutura de Dados - Aula 04
Estrutura de Dados - Aula 04Estrutura de Dados - Aula 04
Estrutura de Dados - Aula 04
 
Aula 02 - Curso PHP e MySQL
Aula 02 - Curso PHP e MySQLAula 02 - Curso PHP e MySQL
Aula 02 - Curso PHP e MySQL
 
Regex
RegexRegex
Regex
 
Estrutura de Dados - Aula 07
Estrutura de Dados - Aula 07Estrutura de Dados - Aula 07
Estrutura de Dados - Aula 07
 

Destaque

Destaque (7)

Expressões regulares
Expressões regularesExpressões regulares
Expressões regulares
 
Expressões regulares
Expressões regularesExpressões regulares
Expressões regulares
 
JavaScript - Expressões Regulares
JavaScript - Expressões RegularesJavaScript - Expressões Regulares
JavaScript - Expressões Regulares
 
Regular Expressions - PET presentation
Regular Expressions - PET presentationRegular Expressions - PET presentation
Regular Expressions - PET presentation
 
Comtec 2011
Comtec 2011Comtec 2011
Comtec 2011
 
Expressões Regulares: Teoria e Prática
Expressões Regulares: Teoria e PráticaExpressões Regulares: Teoria e Prática
Expressões Regulares: Teoria e Prática
 
Apresentação de slides pronto
Apresentação de slides prontoApresentação de slides pronto
Apresentação de slides pronto
 

Semelhante a Expressões regulares

Semelhante a Expressões regulares (15)

Minicurso de Expressões Regulares (REGEX)
Minicurso de Expressões Regulares (REGEX)Minicurso de Expressões Regulares (REGEX)
Minicurso de Expressões Regulares (REGEX)
 
Regex
RegexRegex
Regex
 
Expressões Regulares - Parte II
Expressões Regulares - Parte IIExpressões Regulares - Parte II
Expressões Regulares - Parte II
 
Canivete shell
Canivete shellCanivete shell
Canivete shell
 
Canivete shell
Canivete shellCanivete shell
Canivete shell
 
Strings em php
Strings em phpStrings em php
Strings em php
 
Curso De Shell Aula 6
Curso De Shell   Aula 6Curso De Shell   Aula 6
Curso De Shell Aula 6
 
Curso de PHP - Arrays
Curso de PHP - ArraysCurso de PHP - Arrays
Curso de PHP - Arrays
 
Ruby on rails gds 2011
Ruby on rails   gds 2011Ruby on rails   gds 2011
Ruby on rails gds 2011
 
Shell script
Shell scriptShell script
Shell script
 
Comandos básicos Linux.docx
Comandos básicos Linux.docxComandos básicos Linux.docx
Comandos básicos Linux.docx
 
Fpar aula5
Fpar aula5Fpar aula5
Fpar aula5
 
Php
PhpPhp
Php
 
PHP Arrays - Básico | Certificação
PHP Arrays - Básico | CertificaçãoPHP Arrays - Básico | Certificação
PHP Arrays - Básico | Certificação
 
Regex
RegexRegex
Regex
 

Expressões regulares

  • 2. Propósito g/<regular expression>/p (a|b)*abb ● Linguagem de definição de padrões de pesquisa em uma string ● Linguagem regular
  • 3. Ferramentas onipresentes Unix commands: grep, sed, awk... Linguagens de programação C, Perl, Java, JavaScript, Perl, Ruby, PHP... Bancos de dados MySQL, Oracle, SQL Server, Virtuoso, Elastic Search… Ferramentas Nginx, Apache...
  • 4. Substring Expressões Regulares fazem busca de substrings. Por pardrão, é sensível a maiúsculas e minúsculas re.search("ab", "aaabaaa") # True re.search("zz", "aaabaaa") # False re.search("AB", "aaabaaa") # False re.search("Globo", "Globo.com") # True
  • 5. Conjunto de Caracteres [ ] : Define um conjunto de caracteres - : Definir um intervalo de símbolos dentro do [] [abc] # Procura as letras 'a', 'b' ou 'c' [,|] # Procura os símbolos ',' ou '|' [1234] # Procura os numerais 1, 2, 3 ou 4 [0-9] # Procura por números [a-z] # Procura por letras [a-zA-Z0-9] # Procura por letras maiúsculas, # minúsculas e números
  • 6. Posição dos Caracteres ^ - Início da string $ - Final da string ^a # string começa por a ^[a-z] # string começa por uma letra [0-9]$ # termina por um número ^[0-9]$ # string contem apenas um número ^R[0-9] # começa pela letra 'R' seguida de um número ^$ # string vazia
  • 7. Repetições * - 0 ou mais repetições + - 1 ou mais repetições (pelo menos uma) ? - 0 ou nenhuma repetição a*b # 'b' precedido ou não por vários 'a' ("b", "ab", "aab", "aaaab"...) a[0-9]+ # 'a' seguido de pelo menos 1 número -?[0-9] # um número precedido ou não por '-' [a-z]+[,.!]? # Pelo menos 1 letra seguida ou não pelos símbolos ',' ou '.' ou '?'
  • 8. Quantidade de repetições {n,m} - no mínimo n, no máximo m repetições {n} - exatamente n repetições {n,} - no mínimo n repetições {,m} - até m repetições [0-9]{2} # 2 dígitos [a-z]{2,4} # no mínimo 2, no máximo 4 letras R[0-9]{2,} # letra R seguida de pelo menos 2 dígitos {0,} # o mesmo que * {1,} # o mesmo que + {0,1} # o mesmo que ?
  • 9. Agrupamento em blocos () - Agrupa parte da regra nome(<br/>)? # palavra nome seguida ou não de <br/> ( ?[0-9])+ # lista de números
  • 10. Conjuntos especiais . - Para se referir a qualquer símbolo [^] - Todos os símbolos menos os listados <p>.+</p> # uma tag de parágrafo não vazia http://techtudo.com.br/[^/]+/plantao/2.html # path entre o domínio e a pasta /plantão não pode ter /
  • 11. Alternativa | - Alterna entre 2 ou mais expressões dentro de () (avi|mpg)$ # Termina por avi ou mpg (0?[1-9]|[1-2][0-9]|3[0-1]) # Número de 0 a 31
  • 12. Escape - Elimina a natureza especial de um símbolo .jpg$ # termina pelo símbolo "." seguido de jpg ([0-9]+) # um número cercado por ()
  • 13. Módulo re do Python import re match = re.search("[0-9]", "notas: 7, 3, 6") match.group(0) # 7 match.group(1) # IndexError match = re.findall("[0-9]", "notas: 7, 3, 6") match # [7, 3, 6] (uma lista) re.split("[,;]", "aa,b;cc") # ["aa", "b", "cc"] pattern = re.compile("$ [0-9]+") pattern.match("$ 31") pattern.match("$ 452")
  • 14. Sequências especiais d - equivalente a [0-9] D - equivalente a [^0-9] s - caracteres de espaço [ tnrfv] w - equivalente a [a-zA-Z0-9_] W - equivalente a [^a-zA-Z0-9_] d,d # número com vírgula w(.w)* # palavra seguida de 0 ou mais .palavra