75
EXPRESSÕES REGULARES BIO LABS #5 LUCAS CATÓN

Expressões Regulares (Bio Labs #5)

Embed Size (px)

DESCRIPTION

http://blog.lucascaton.com.br/?p=979

Citation preview

Page 1: Expressões Regulares (Bio Labs #5)

EXPRESSÕES REGULARES

BIO LABS #5

LUCAS CATÓN

Page 2: Expressões Regulares (Bio Labs #5)

POR QUE UMA APRESENTAÇÃO SOBRE EXPRESSÕES REGULARES?

MUITO ÚTEIS

DEPOIS DE POUCO TEMPO, TUDO PARECE MAIS FÁCIL

ASSUNTO CONSISTENTE, NÃO SOFRE GRANDES ALTERAÇÕS

Page 3: Expressões Regulares (Bio Labs #5)

NOMES...

EXPRESSÕES REGULARES

EXPREG

ER

REGULAR EXPRESSIONS

REGEX

REGEXP

Page 4: Expressões Regulares (Bio Labs #5)

O QUE É?

SEGUNDO A WIKIPEDIA...

“(...) PROVÊ UMA FORMA CONCISA E FLEXÍVEL DE IDENTIFICAR CADEIAS DE CARACTERES DE INTERESSE,

COMO CARACTERES PARTICULARES, PALAVRAS OU PADRÕES DE CARACTERES.”

Page 5: Expressões Regulares (Bio Labs #5)

?

Page 6: Expressões Regulares (Bio Labs #5)

“(...) UMA MANEIRA DE PROCURAR UM TEXTO

QUE VOCÊ NÃO LEMBRA EXATAMENTE COMO É,

MAS TEM IDÉIA DAS VÁRIAÇÕES POSSÍVEIS.”

PRA QUE SERVE?

Page 7: Expressões Regulares (Bio Labs #5)

POR EXEMPLO

Saqueto

Sacketo

Sacheto

Sachetto

Sa(qu|ch|ck)ett?o

Page 8: Expressões Regulares (Bio Labs #5)

PRA QUE SERVE?

“(...) UMA MANEIRA DE PROCURAR UM TEXTO

QUE VOCÊ NÃO LEMBRA EXATAMENTE COMO É,

MAS TEM IDÉIA DAS VÁRIAÇÕES POSSÍVEIS.”

Page 9: Expressões Regulares (Bio Labs #5)

PRA QUE SERVE?

VALIDAR EMAIL, IP, TELEFONE, DATA, CEP, CPF..

Page 10: Expressões Regulares (Bio Labs #5)

POR EXEMPLO

Endereço IP

\d{1,3} \. \d{1,3} \. \d{1,3} \. \d{1,3}

255 . 180 . 45 . 80

192 . 168 . 120 . 55

300 . 400 . 500 . 600

Page 11: Expressões Regulares (Bio Labs #5)

POR EXEMPLO

Endereço IP

\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b

255 . 180 . 45 . 80

192 . 168 . 120 . 55

300 . 400 . 500 . 600

Page 12: Expressões Regulares (Bio Labs #5)

TAMANHO NÃO É DOCUMENTO.

ÀS VEZES UMA REGEX MENOR É MELHOR...E ÀS VEZES NÃO.

Page 13: Expressões Regulares (Bio Labs #5)

RESUMINDO...

“(...) É UM MÉTODO FORMALDE SE ESPECIFICAR UM PADRÃO DE TEXTO.”

Page 14: Expressões Regulares (Bio Labs #5)

ONDE POSSO USAR?

Page 15: Expressões Regulares (Bio Labs #5)
Page 16: Expressões Regulares (Bio Labs #5)
Page 17: Expressões Regulares (Bio Labs #5)
Page 18: Expressões Regulares (Bio Labs #5)
Page 19: Expressões Regulares (Bio Labs #5)

VAMOS APRENDER!

Page 20: Expressões Regulares (Bio Labs #5)

ER...

SÃO METACARACTERES

QUE CASAM UM PADRÃO.

. ? * + ^ $ | [ ] { } ( ) \

“MATCH” “PATTERN”

Page 21: Expressões Regulares (Bio Labs #5)

UM EXEMPLO RÁPIDO

[grp]ato

gatoratopato

Page 22: Expressões Regulares (Bio Labs #5)

METACARACTERES

Page 23: Expressões Regulares (Bio Labs #5)

Metacaractere Nome

. Ponto

[] Lista

[^] Lista negada

? Opcional

* Asterisco

+ Mais

{} Chaves

Page 24: Expressões Regulares (Bio Labs #5)

Metacaractere Nome

^ Cicunflexo

$ Cifrão

\b Borda

\ Escape

| Ou

() Grupo

\1 $1 Retrovisor

Page 25: Expressões Regulares (Bio Labs #5)

Metacaractere Nome Função

. Ponto Um caracter qualquer

[...] Lista Lista de caracteres permitidos

[^...] Lista negada Lista de caracteres proibidos

REPRESENTANTES

Page 26: Expressões Regulares (Bio Labs #5)

Metacaractere Nome Função

? Opcional Zero ou um

* Asterisco Zero, um ou mais

+ Mais Um ou mais

{n,m} Chaves De n até m

QUANTIFICADORES

Page 27: Expressões Regulares (Bio Labs #5)

Metacaractere Nome Função

^ Circunflexo Início da linha

$ Cifrão Fim da linha

\b Borda Início ou fim da palavra

ÂNCORAS

Page 28: Expressões Regulares (Bio Labs #5)

Metacaractere Nome Função

\+ Escape Torna o literal o caracter +

| Ou Ou um ou outro

(...) Grupo Delimita um grupo

\1...\9$1...$9 Retrovisor Texto casado nos

grupos 1...9

OUTROS

Page 29: Expressões Regulares (Bio Labs #5)

Metacaractere Nome Função

. PontoUm caracter

qualquer

[...] Lista Lista de caracteres permitidos

[^...] Lista negada Lista de caracteres proibidos

REPRESENTANTES

Page 30: Expressões Regulares (Bio Labs #5)

Expressão Casa com

n.o não, nao, ...

.eclado teclado, Teclado, ...

e.tendido estendido, extendido, eztendido, ...

PONTO

Page 31: Expressões Regulares (Bio Labs #5)

Expressão Casa com

12.45 12:45, 12 45, 12.45, ...

<.> <p>, <i>, <b>, ...

PONTO

Page 32: Expressões Regulares (Bio Labs #5)

Metacaractere Nome Função

. Ponto Um caracter qualquer

[...] ListaLista de

caracteres permitidos

[^...] Lista negada Lista de caracteres proibidos

REPRESENTANTES

Page 33: Expressões Regulares (Bio Labs #5)

Expressão Casa com

n[ãa]o não, nao

[Tt]eclado Teclado, teclado

e[sx]tendido estendido, extendido

12[:. ]45 12:45, 12.45, 12 45

<[pib]> <p>, <i>, <b>

LISTA

Page 34: Expressões Regulares (Bio Labs #5)

Expressão Casa com

n[ãa]o não, nao

[Tt]eclado Teclado, teclado

e[sx]tendido estendido, extendido

12[:. ]45 12:45, 12.45, 12 45

<[pib]> <p>, <i>, <b>

LISTA

Page 35: Expressões Regulares (Bio Labs #5)

Expressão Casa com

<[PIBpib]> <P>, <I>, <B>, <p>, <i>, <b>

LISTA

Page 36: Expressões Regulares (Bio Labs #5)

O que eu preciso Expressão

Um número qualquer [0123456789]

LISTA

Page 37: Expressões Regulares (Bio Labs #5)

O que eu preciso Expressão

Hora no formado hh:mm [0123456789][0123456789]:[0123...

LISTA

Page 38: Expressões Regulares (Bio Labs #5)

DÁ PRA MELHORAR?

Page 39: Expressões Regulares (Bio Labs #5)

INTERVALOS!

Page 40: Expressões Regulares (Bio Labs #5)

O que eu preciso Expressão

Hora no formado hh:mm [0-9][0-9]:[0-9][0-9]

LISTA

Page 41: Expressões Regulares (Bio Labs #5)

DÁ PRA MELHORAR AINDA MAIS?

Page 42: Expressões Regulares (Bio Labs #5)

O que eu preciso Expressão

Hora no formado hh:mm [012][0-9]:[0-5][0-9]

LISTA

Page 43: Expressões Regulares (Bio Labs #5)

Expressão Casa com

A-z Um monte de coisas

A-Za-z Letras maiusculas e minusculas

A-Za-z0-9 Letras maiusculas e minusculas e ainda números

LISTA

Page 44: Expressões Regulares (Bio Labs #5)

Metacaractere Nome Função

. Ponto Um caracter qualquer

[...] Lista Lista de caracteres permitidos

[^...] Lista negadaLista de

caracteres proibidos

REPRESENTANTES

Page 45: Expressões Regulares (Bio Labs #5)

Expressão Casa com

[^0-9] a, b, c, %, #, $, ...

[:;,.!?][^ ] Qualquer coisa que não seja o espaço após a pontuação

LISTA NEGADA

Page 46: Expressões Regulares (Bio Labs #5)

Metacaractere Nome Função

? Opcional Zero ou um

* Asterisco Zero, um ou mais

+ Mais Um ou mais

{n,m} Chaves De n até m

QUANTIFICADORES

Page 47: Expressões Regulares (Bio Labs #5)

MAS ANTES...

COMO SE LÊ UMA EXPRESSÃO REGULAR?

Page 48: Expressões Regulares (Bio Labs #5)

fala[r!]

falar fala!

Page 49: Expressões Regulares (Bio Labs #5)

fala[r!]?

Page 50: Expressões Regulares (Bio Labs #5)

Expressão Casa com

fala[r!]? falar, fala!, fala

</?[pib]> <p>, <i>, <b></p>, </i>, </b>

OPCIONAL

Page 51: Expressões Regulares (Bio Labs #5)

Metacaractere Nome Função

? Opcional Zero ou um

* AsteriscoZero, um ou

mais

+ Mais Um ou mais

{n,m} Chaves De n até m

QUANTIFICADORES

Page 52: Expressões Regulares (Bio Labs #5)

Expressão Casa com

7*0 0, 70, 770, ..., 7777777777777770, ...

bi*p bp, bip, biip, biiiiiiiiip, ...

b[ip]* b, bi, bp, bip, biipp, bpipi, biiiiiip, bpppp, ...

ASTERISCO

Page 53: Expressões Regulares (Bio Labs #5)

Expressão Casa com

</?[bip] *> </b>, </b >, <b >, ..., <p >, ...

ASTERISCO

Page 54: Expressões Regulares (Bio Labs #5)

GULODICE!

?*+{}

Page 55: Expressões Regulares (Bio Labs #5)

Expressão Casa com

[ar]*aa

araarara

ASTERISCO

Page 56: Expressões Regulares (Bio Labs #5)

CORINGA!

.*

Page 57: Expressões Regulares (Bio Labs #5)

Metacaractere Nome Função

? Opcional Zero ou um

* Asterisco Zero, um ou mais

+ Mais Um ou mais

{n,m} Chaves De n até m

QUANTIFICADORES

Page 58: Expressões Regulares (Bio Labs #5)

Expressão Casa com

7+0 70, 770, ..., 7777777777777770, ...

bi+p bip, biip, biiiiiiiiip, ...

b[ip]+ bi, bp, bip, biipp, bpipi, biiiiiip, bpppp, ...

MAIS

Page 59: Expressões Regulares (Bio Labs #5)

Metacaractere Nome Função

? Opcional Zero ou um

* Asterisco Zero, um ou mais

+ Mais Um ou mais

{n,m} Chaves De n até m

QUANTIFICADORES

Page 60: Expressões Regulares (Bio Labs #5)

Metacaractere Repetições

{1,3} De 1 à 3

{3,} Pelo menos 3 (3 ou mais)

{0,3} Até 3

{3} Exatamente 3

{1} Exatamente 1

{0,1} Zero ou 1

{0,} Zero ou mais

{1,} Um ou mais

CHAVES

?*+

Page 61: Expressões Regulares (Bio Labs #5)

Metacaractere Nome Função

^ Circunflexo Início da linha

$ Cifrão Fim da linha

\b Borda Início ou fim da palavra

ÂNCORAS

Page 62: Expressões Regulares (Bio Labs #5)

Expressão Casa com

^abc abcdef...

xyz$ ...uvwxyz

s\b macãs, bananas, uvas

ÂNCORAS

Page 63: Expressões Regulares (Bio Labs #5)

Metacaractere Nome Função

\+ Escape Torna o literal o caracter +

| Ou Ou um ou outro

(...) Grupo Delimita um grupo

\1...\9$1...$9 Retrovisor Texto casado nos

grupos 1...9

OUTROS

Page 64: Expressões Regulares (Bio Labs #5)

Expressão Casa com

lua\* lua*

gato|pato|rato gato, pato, rato

(\d{1,3}.?){4} 200.135.40.30, 8.8.8.8

(.*) texto\1 texto

OUTROS

Page 65: Expressões Regulares (Bio Labs #5)

Expressão Casa com

1\+2\? 1+2?

bom-dia|boa-tarde bom-dia, boa-tarde

(www\.)?bioritmo.com.brwww.bioritmo.com.br

bioritmo.com.br

\d{1,3}.\d{1,3}.\d{1,3}.(\d{1,3}) 192.168.0.5\1 5

OUTROS

Page 66: Expressões Regulares (Bio Labs #5)

s/(abc)(def)/\2\1/g

abcdef

defabc

Page 67: Expressões Regulares (Bio Labs #5)

METACARACTERES “MODERNOSOS”

Page 68: Expressões Regulares (Bio Labs #5)

UM PONTO NEGATIVO...

Page 69: Expressões Regulares (Bio Labs #5)

CONCLUSÃO

APRENDER EXPRESSÕES REGULARESÉ COMO O ALFABETO...

VOCÊ APRENDER PRIMEIRO AS LETRAS INDIVIDUALMENTE.DEPOIS AS SÍLABAS, AS PALAVRAS, FRASES E FINALMENTE OS TEXTOS.

MAS NO FUNDO, SÃO APENAS LETRAS!

Page 70: Expressões Regulares (Bio Labs #5)

REFERÊNCIAS

Page 71: Expressões Regulares (Bio Labs #5)

REFERÊNCIAS

http://rubular.com/

Page 72: Expressões Regulares (Bio Labs #5)

JABA MODE=ON

Page 73: Expressões Regulares (Bio Labs #5)

REFERÊNCIAS

https://github.com/lucascaton/rugex

Page 74: Expressões Regulares (Bio Labs #5)

OBRIGADO!

Page 75: Expressões Regulares (Bio Labs #5)

DÚVIDAS?