Expressões Regulares - Introdução

Preview:

Citation preview

Expressões Regulares

Introdução

Jackson VeronezeSoftware Developer

jackson@jacksonveroneze.comhttps://jacksonveroneze.com

Elisabeth KorollSoftware Developer

lisafkoroll@gmail.com

Patrick Souza do NascimentoSoftware Developer

patrick@microvision.com.brhttps://www.microvision.com.br

Sumário

O que é?

Metacaracteres(Introdução)

Padrão posix

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.

Principais funções de Expressão Regular

Match

Replace

Split

Função Match (casar)

Função Replace (substituir)

Função Split (separar)

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

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.

Metacaracteres

. Ponto

[] Lista

[^] Lista negada

? Opcional

* Asterisco

+ Mais

{} Chaves

^ Circunflexo

$ Cifrão

\ Escape

| Ou

() Grupo

\b Borda

\1 Retrovisor

Metacaracteres

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

Representantes

Quantificadores

Âncoras

Outros

Metacaracteres - Representantes

Metacaractere Nome Função

. Ponto Um caractere qualquer

[...] Lista Lista de caracteres permitidos

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

Metacaracteres - Representantes

Função é representar um ou mais caracteres.

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

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

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

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 *, %, #, é, ã

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

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

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.

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

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

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

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.

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

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

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

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ÁÃÂÀÉÊÍÓÕÔÚÇ...]

Posix Exemplos

Posix String Resultado

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

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

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

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

‘aluno MARIA’ MARIA

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.

Recommended