30
Expressões Regulares Introdução

Expressões Regulares - Introdução

Embed Size (px)

Citation preview

Page 1: Expressões Regulares - Introdução

Expressões Regulares

Introdução

Page 2: Expressões Regulares - Introdução

Jackson VeronezeSoftware Developer

[email protected]://jacksonveroneze.com

Elisabeth KorollSoftware Developer

[email protected]

Patrick Souza do NascimentoSoftware Developer

[email protected]://www.microvision.com.br

Page 3: Expressões Regulares - Introdução

Sumário

O que é?

Metacaracteres(Introdução)

Padrão posix

Page 4: Expressões Regulares - Introdução

O que é Expressão Regular

Em ciência da computação, uma expressão regular (ou o estrangeirismo regex, abreviação do inglês regular expression) provê uma forma concisa e flexível de identificar cadeias de caracteres de interesse, como caracteres particulares, palavras ou padrões de caracteres. Expressões regulares são escritas numa linguagem formal que pode ser interpretada por um processador de expressão regular, que identifica as partes informadas.

Page 5: Expressões Regulares - Introdução

Principais funções de Expressão Regular

Match

Replace

Split

Page 6: Expressões Regulares - Introdução

Função Match (casar)

Page 7: Expressões Regulares - Introdução

Função Replace (substituir)

Page 8: Expressões Regulares - Introdução

Função Split (separar)

Page 9: Expressões Regulares - Introdução

Expressão regular com Banco de Dados.

Exemplo básico de como a expressão regular pode nos auxiliar no dia-a-dia.

Como alterar informações de ip de uma tabela EX: 192.168.3.248 para 192.168.0.231

Page 10: Expressões Regulares - Introdução

Metacaracteres

. ? * + ^ $ | [ ] { } ( ) \Cada símbolo tem uma função específica, porém pode mudar dependendo do contexto no qual está

inserido.

Pode-se combinar uns com os outros, fazendo construções mais complexas.

Page 11: Expressões Regulares - Introdução

Metacaracteres

. Ponto

[] Lista

[^] Lista negada

? Opcional

* Asterisco

+ Mais

{} Chaves

^ Circunflexo

$ Cifrão

\ Escape

| Ou

() Grupo

\b Borda

\1 Retrovisor

Page 12: Expressões Regulares - Introdução

Metacaracteres

Estão divididos em quatro grupos distintos, de acordo com as características comuns entre eles.

Representantes

Quantificadores

Âncoras

Outros

Page 13: Expressões Regulares - Introdução

Metacaracteres - Representantes

Metacaractere Nome Função

. Ponto Um caractere qualquer

[...] Lista Lista de caracteres permitidos

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

Page 14: Expressões Regulares - Introdução

Metacaracteres - Representantes

Função é representar um ou mais caracteres.

Casam a posição de um único caractere, e não mais que um.

Page 15: Expressões Regulares - Introdução

Metacaracteres - Representantes (Ponto)

Conhecido como coringa solitário, pois está sempre a procura de um casamento.

Pode ser número, letra, símbolo, vai casar.

Exemplo.

“Um texto normal em português, você pode procurar palavras que você não se lembra se acentuou ou não”.Expressão Casa com

n.o não, nao

.eclado teclado, Teclado

e.tendido estendido, extendido, eztendido

12.45 12:45, 12 45, 12-45

Page 16: Expressões Regulares - Introdução

Metacaracteres - Representantes (Lista)

Mais exigente que o ponto, não casa com qualquer um. Aceita somente quem ela conhece.

Guarda dentro de si os caracteres permitidos.

Ao contrário do ponto que pode trazer resultados indesejados, a lista é mais específica.

Expressão Casa com Não casa com

n[ãa]o não, nao neo

[Tt]eclado teclado, Teclado 9eclado

e[sx]tendido estendido, extendido eztendido

12[:-]45 12:45, 12-45 12/45

Page 17: Expressões Regulares - Introdução

Metacaracteres - Representantes (Intervalos)

Representam um intervalo de caracteres.

Expressão Casa com Não casa com

[0-9] 1 a

[a-z] c 8

[A-Z] D d

[a-zA-Z0-9] b, 8, A, x, 2 *, %, #, é, ã

Page 18: Expressões Regulares - Introdução

Metacaracteres - Representantes (Lista negada)

Nem tão exigente quanto a lista, nem tão necessitada quanto o ponto.

Ela sabe o que não serve para casar.

Possui a lógica inversa, ou seja, ela casa com qualquer coisa exceto os caracteres nela listados.Expressão Casa com Não casa com

[^0-9] a 5, 3

[^a-z] B, 8, @ t ,g

[^A-Z] b, 2, $ R

[^a-zA-Z0-9] *, %, #, é, ã b, 8, A, x, 2

Page 19: Expressões Regulares - Introdução

Metacaracteres - Quantificadores

Metacaractere Nome Função

? Opcional Zero ou um

* Asterisco Zero, um ou mais(recursividade)

+ Mais Um ou mais

{n,m} Chaves De n até m

Page 20: Expressões Regulares - Introdução

Metacaracteres - Quantificadores

Indicam o número de repetições permitidas para a entidade imediatamente anterior a ele.

Em outras palavras, eles dizem a quantidade de repetições que a entidade anterior a ele pode ter, ou seja, quantas vezes pode aparecer.

Page 21: Expressões Regulares - Introdução

Metacaracteres - Quantificadores (Opcional - ?)

Para ele, pode ter ou não a ocorrência da entidade anterior a ele, pois ele a repete 0 ou 1 vez.

Expressão Casa com

cass?ar casar, cassar

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

palavra? palavra, palavras

Page 22: Expressões Regulares - Introdução

Metacaracteres - Quantificadores (Asterisco - * )

A entidade anterior a ela, pode aparecer em qualquer quantidade

Expressão Casa com

7*0 0, 70, 770,0 7770

bi*p bp, bip, biip, biiip

b[ip]* b, bi, bip, biipp

Page 23: Expressões Regulares - Introdução

Metacaracteres - Quantificadores (Mais - + )

O mais é semelhante ao asterisco, porém não é opcional, ou seja, a entidade anterior a ela, deve casar pelo menos uma vez, e pode ter várias.

Sua utilidade é quando queremos no mínimo uma única repetição.Expressão Casa com

7+0 70, 770, 7770, 77770

bi+p bip, biip, biiiip, biiiiip

b[ip]+ bi, bip, biip, biipp

Page 24: Expressões Regulares - Introdução

Metacaracteres - Quantificadores (Chaves - {n,m})

A chave é a solução para uma quantificação mais controlada.

Pode-se especificar exatamente a quantidade de repetições da entidade anterior a ela.

Basicamente {n,m} significa de n até m vezes, assim algo como 7{1,4}, casa com 7, 77, 777, 7777.

Podemos especificar um número exato, um mínimo, um máximo, ou uma faixa numérica.

Page 25: Expressões Regulares - Introdução

Metacaracteres - Quantificadores (Chaves - {n,m})

Metacaractere Repetições

{1,3} De 1 a 3

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

{0,3} Até 3

{3} Exatamente 3

{0,1} Zero ou 1

{0,} Zero ou mais

{1,} Um ou mais

Page 26: Expressões Regulares - Introdução

Metacaracteres - Quantificadores (Chaves - {n,m})

Expressão Casa com Não casa com

7{1,1} 7 77

58{0,2}5 55, 585, 5885 58885

58{1,}5 585, 5885, 58885 55

Page 27: Expressões Regulares - Introdução

Padrão Posix

Acrônimo para Portable Operating System Interface

Traduzindo: Interface Portável entre Sistemas Operacionais

São Grupos definidos por tipo. POSIX é um padrão internacional que define esse tipo de regra, como será sua sintaxe

PHP usa expressões regulares compatíveis com POSIX definidas pelo POSIX 1003.2

Page 28: Expressões Regulares - Introdução

Padrão Posix

[:upper:] é o mesmo que A-Z, letras maiúsculas

● Números : xxx.xxx,xx

● Datas: dd/mm/YYYY

● Alfanumérico: ÁÉÍÓÚ…

Ex:

USA [[:upper:]] é igual a [A-Z]

Brasil: [[:upper:]] é igual [A-ZÁÃÂÀÉÊÍÓÕÔÚÇ...]

Page 29: Expressões Regulares - Introdução

Posix Exemplos

Posix String Resultado

[[:digit:]] ‘aluno 123’ 123

[^[:digit:]] ‘aluno 123’ aluno

[[:lower:]] ‘aluno MARIA’ aluno

[^[:lower:]] |[[:upper:]]

‘aluno MARIA’ MARIA

Page 30: Expressões Regulares - Introdução

Referências

http://aurelio.net/regex/guia/lista.html

http://www.devmedia.com.br/expressoes-regulares-em-banco-de-dados-oracle/12504

JARGAS, Aurelio Marinho. Expressões Regulares: Uma abordagem divertida. 4.ed. São Paulo: Novatec, 2012. 224p.