expressões regulares - introdução
Post on 15-Apr-2017
55 Views
Preview:
TRANSCRIPT
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.
top related