Você está na página 1de 75

EXPRESSES REGULARES

BIO LABS #5 LUCAS CATN

POR QUE UMA APRESENTAO SOBRE EXPRESSES REGULARES?

MUITO TEIS DEPOIS DE POUCO TEMPO, TUDO PARECE MAIS FCIL ASSUNTO CONSISTENTE, NO SOFRE GRANDES ALTERAS

NOMES...
EXPRESSES REGULARES EXPREG ER REGULAR EXPRESSIONS REGEX REGEXP

O QUE ?
SEGUNDO A WIKIPEDIA... (...) PROV UMA FORMA CONCISA E FLEXVEL DE IDENTIFICAR CADEIAS DE CARACTERES DE INTERESSE, COMO CARACTERES PARTICULARES, PALAVRAS OU PADRES DE CARACTERES.

PRA QUE SERVE?


(...) UMA MANEIRA DE PROCURAR UM TEXTO QUE VOC NO LEMBRA EXATAMENTE COMO , MAS TEM IDIA DAS VRIAES POSSVEIS.

POR EXEMPLO
Saqueto Sacketo Sacheto

Sachetto Sa(qu|ch|ck)ett?o

PRA QUE SERVE?


PROCURAR UM TEXTO EXATAMENTE COMO ,

(...) UMA MANEIRA DE

QUE VOC NO LEMBRA MAS TEM IDIA DAS

VRIAES POSSVEIS.

PRA QUE SERVE?

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

POR EXEMPLO

Endereo 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

POR EXEMPLO

Endereo 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

TAMANHO NO DOCUMENTO. S VEZES UMA REGEX MENOR MELHOR... E S VEZES NO.

RESUMINDO...

(...) UM MTODO FORMAL DE SE ESPECIFICAR UM PADRO DE TEXTO.

ONDE POSSO USAR?

VAMOS APRENDER!

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

ER... SO METACARACTERES QUE CASAM UM PADRO.


MATCH PATTERN

UM EXEMPLO RPIDO

[grp]ato gato rato pato

METACARACTERES

Metacaractere
. [] [^] ? * + {}

Nome
Ponto Lista Lista negada Opcional Asterisco Mais Chaves

Metacaractere
^ $ \b \ | () \1 $1

Nome
Cicunexo Cifro Borda Escape Ou Grupo Retrovisor

REPRESENTANTES
Metacaractere
.

Nome
Ponto

Funo
Um caracter qualquer Lista de caracteres permitidos Lista de caracteres proibidos

[...]

Lista

[^...]

Lista negada

QUANTIFICADORES
Metacaractere
? * + {n,m}

Nome
Opcional Asterisco Mais Chaves

Funo
Zero ou um Zero, um ou mais Um ou mais De n at m

NCORAS
Metacaractere
^

Nome
Circunexo

Funo
Incio da linha

Cifro

Fim da linha Incio ou m da palavra

\b

Borda

OUTROS
Metacaractere
\+ | (...) \1...\9 $1...$9

Nome
Escape Ou Grupo Retrovisor

Funo
Torna o literal o caracter + Ou um ou outro Delimita um grupo Texto casado nos grupos 1...9

REPRESENTANTES
Metacaractere
.

Nome
Ponto

Funo
Um caracter qualquer Lista de caracteres permitidos Lista de caracteres proibidos

[...]

Lista

[^...]

Lista negada

PONTO
Expresso
n.o

Casa com
no, nao, ...

.eclado

teclado, Teclado, ...

e.tendido

estendido, extendido, eztendido, ...

PONTO
Expresso Casa com

12.45

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

<.>

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

REPRESENTANTES
Metacaractere
.

Nome
Ponto

Funo
Um caracter qualquer Lista de caracteres permitidos Lista de caracteres proibidos

[...]

Lista

[^...]

Lista negada

LISTA
Expresso
n[a]o [Tt]eclado e[sx]tendido 12[:. ]45 <[pib]>

Casa com
no, nao Teclado, teclado estendido, extendido 12:45, 12.45, 12 45 <p>, <i>, <b>

LISTA
Expresso
n[a]o [Tt]eclado e[sx]tendido 12[:. ]45 <[pib]>

Casa com
no, nao Teclado, teclado estendido, extendido 12:45, 12.45, 12 45 <p>, <i>, <b>

LISTA

Expresso

Casa com

<[PIBpib]>

<P>, <I>, <B>, <p>, <i>, <b>

LISTA

O que eu preciso

Expresso

Um nmero qualquer

[0123456789]

LISTA

O que eu preciso

Expresso

Hora no formado hh:mm

[0123456789][0123456789]:[0123...

D PRA MELHORAR?

INTERVALOS!

LISTA

O que eu preciso

Expresso

Hora no formado hh:mm

[0-9][0-9]:[0-9][0-9]

D PRA MELHORAR AINDA MAIS?

LISTA

O que eu preciso

Expresso

Hora no formado hh:mm

[012][0-9]:[0-5][0-9]

LISTA
Expresso
A-z A-Za-z A-Za-z0-9

Casa com
Um monte de coisas Letras maiusculas e minusculas Letras maiusculas e minusculas e ainda nmeros

REPRESENTANTES
Metacaractere
.

Nome
Ponto

Funo
Um caracter qualquer Lista de caracteres permitidos Lista de caracteres proibidos

[...]

Lista

[^...]

Lista negada

LISTA NEGADA
Expresso Casa com

[^0-9]

a, b, c, %, #, $, ...

[:;,.!?][^ ]

Qualquer coisa que no seja o espao aps a pontuao

QUANTIFICADORES
Metacaractere
? * + {n,m}

Nome
Opcional Asterisco Mais Chaves

Funo
Zero ou um Zero, um ou mais Um ou mais De n at m

MAS ANTES... COMO SE L UMA EXPRESSO REGULAR?

fala[r!] falar fala!

fala[r!]?

OPCIONAL
Expresso Casa com

fala[r!]?

falar, fala!, fala

</?[pib]>

<p>, <i>, <b> </p>, </i>, </b>

QUANTIFICADORES
Metacaractere
? * + {n,m}

Nome
Opcional Asterisco Mais Chaves

Funo
Zero ou um Zero, um ou mais Um ou mais De n at m

ASTERISCO
Expresso
7*0

Casa com
0, 70, 770, ..., 7777777777777770, ...

bi*p

bp, bip, biip, biiiiiiiiip, ...

b[ip]*

b, bi, bp, bip, biipp, bpipi, biiiiiip, bpppp, ...

ASTERISCO

Expresso

Casa com

</?[bip] *>

</b>, </b >, <b

>, ..., <p

>, ...

GULODICE! ? * + {}

ASTERISCO

Expresso

Casa com

[ar]*a

a ara arara

CORINGA! .*

QUANTIFICADORES
Metacaractere
? * + {n,m}

Nome
Opcional Asterisco Mais Chaves

Funo
Zero ou um Zero, um ou mais Um ou mais De n at m

MAIS
Expresso
7+0

Casa com
70, 770, ..., 7777777777777770, ...

bi+p

bip, biip, biiiiiiiiip, ...

b[ip]+

bi, bp, bip, biipp, bpipi, biiiiiip, bpppp, ...

QUANTIFICADORES
Metacaractere
? * + {n,m}

Nome
Opcional Asterisco Mais Chaves

Funo
Zero ou um Zero, um ou mais Um ou mais De n at m

CHAVES
Metacaractere
{1,3} {3,} {0,3} {3} {1} {0,1} {0,} {1,}

Repeties
De 1 3 Pelo menos 3 (3 ou mais) At 3 Exatamente 3 Exatamente 1 Zero ou 1 Zero ou mais Um ou mais

? * +

NCORAS
Metacaractere
^

Nome
Circunexo

Funo
Incio da linha

Cifro

Fim da linha Incio ou m da palavra

\b

Borda

NCORAS
Expresso
^abc

Casa com
abcdef...

xyz$

...uvwxyz

s\b

macs, bananas, uvas

OUTROS
Metacaractere
\+ | (...) \1...\9 $1...$9

Nome
Escape Ou Grupo Retrovisor

Funo
Torna o literal o caracter + Ou um ou outro Delimita um grupo Texto casado nos grupos 1...9

OUTROS
Expresso
lua\* gato|pato|rato (\d{1,3}.?){4} (.*)

Casa com
lua* gato, pato, rato 200.135.40.30, \1 8.8.8.8

texto texto

OUTROS
Expresso
1\+2\? bom-dia|boa-tarde (www\.)?bioritmo.com.br \d{1,3}.\d{1,3}.\d{1,3}.(\d{1,3})

Casa com
1+2? bom-dia, boa-tarde www.bioritmo.com.br bioritmo.com.br 192.168.0.5 \1 5

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

METACARACTERES MODERNOSOS

UM PONTO NEGATIVO...

CONCLUSO
APRENDER EXPRESSES REGULARES COMO O ALFABETO... VOC APRENDER PRIMEIRO AS LETRAS INDIVIDUALMENTE. DEPOIS AS SLABAS, AS PALAVRAS, FRASES E FINALMENTE OS TEXTOS. MAS NO FUNDO, SO APENAS LETRAS!

REFERNCIAS

REFERNCIAS

http://rubular.com/

JABA MODE=ON

REFERNCIAS

https://github.com/lucascaton/rugex

OBRIGADO!

DVIDAS?

Você também pode gostar