Buscar

Aula24 ExpressoesRegulares

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Programação	
  para	
  Servidores	
  
Aula	
  24	
  
Sumário	
  
•  Expressões	
  regulares	
  (con=nuação...);	
  
2	
  
Expressões	
  Regulares	
  
•  Expressões	
  Regulares	
  -­‐	
  Guia	
  de	
  Consulta	
  Rápida	
  
– por	
  Aurelio	
  Marinho	
  Jargas	
  e	
  Editora	
  Novatec,	
  ©2001	
  
– hNp://aurelio.net/regex/guia/	
  
3	
  
Expressões	
  Regulares	
  
•  Metacaracteres	
  representantes	
  /	
  significado:	
  
.	
  	
   (ponto)	
   -­‐	
  um	
  caractere	
  qualquer	
  
[...]	
   (lista)	
   -­‐	
  lista	
  de	
  caracteres	
  permi=dos	
  
[^...]	
   (lista	
  negada)	
   -­‐	
  lista	
  de	
  caracteres	
  proibidos	
  
•  Metacaracteres	
  quan=ficadopres	
  /	
  significado:	
  
?	
   (opcional)	
   -­‐	
  zero	
  ou	
  um	
  
*	
   (asterisco)	
   -­‐	
  zero,	
  um	
  ou	
  mais	
  
+	
   (mais)	
   -­‐	
  um	
  ou	
  mais	
  
{n, m}	
   (chaves)	
   -­‐	
  de	
  n	
  até	
  m	
  
4	
  
Exercícios	
  –	
  Aula	
  23	
  
•  Respostas:	
  
1.  A	
  palavra	
  “frase”	
  no	
  singular	
  e	
  no	
  plural;	
  
frases?	
  
2.  A	
  palavra	
  “letra”	
  podendo	
  conter	
  qualquer	
  combinação	
  
de	
  letras	
  maiúsculas	
  e	
  minúsculas;	
  
[lL][eE][tT][rR][aA]	
  
3.  Números	
  inteiros;	
  
\-?[0-9]+	
  
4.  Hora	
  de	
  00:00	
  a	
  23:59;	
  
[0-2][0-9]:[0-5][0-9]	
  
5	
  
Expressões	
  Regulares	
  
•  Metacaracteres	
  âncoras	
  /	
  significado:	
  
^	
   (circunflexo)	
   -­‐	
  início	
  da	
  linha	
  
$	
   (cifrão)	
   -­‐	
  final	
  da	
  linha	
  
\b	
   (borda)	
   -­‐	
  início	
  ou	
  fim	
  de	
  palavra	
  
•  Outros	
  metacaracteres	
  /	
  significado:	
  
\	
   (escape)	
   -­‐	
  torna	
  literal	
  o	
  caractere	
  à	
  sua	
  direita	
  
|	
   (ou)	
   -­‐	
  um	
  ou	
  outro	
  
(...)	
   (grupo)	
   -­‐	
  delimita	
  um	
  grupo	
  
\1...\9	
   (retrovisor)	
   -­‐	
  texto	
  casado	
  nos	
  grupos	
  1...9	
  
•  Não	
  confundir	
  os	
  curingas	
  da	
  linha	
  de	
  comando	
  com	
  
metacaracteres	
  de	
  expressão	
  regular!	
  
6	
  
Expressões	
  Regulares	
  
•  Classe	
  POSIX:	
  
[:upper:]	
   letras	
  maiúsculas;	
  
[:lower:]	
   letras	
  minúsculas;	
  
[:alpha:]	
   letras	
  maiúsculas	
  e	
  minúsculas;	
  
[:alnum:]	
   letras	
  e	
  números;	
  
[:digit:]	
   números;	
  
[:xdigit:]	
   números	
  hexadecimais;	
  
[:punct:]	
   sinais	
  de	
  pontuação;	
  
[:blank:]	
   espaço	
  e	
  tabulação;	
  
[:space:]	
   caracteres	
  brancos	
  (\t\n\r\f\v);	
  
[:cntrl:]	
   caracteres	
  de	
  controle;	
  
7	
  
Expressões	
  Regulares	
  
•  Classe	
  POSIX	
  (con=nuação):	
  
[:graph:]	
   caracteres	
  imprimíveis;	
  
[:print:]	
   caracteres	
  imprimíveis	
  e	
  o	
  espaço;	
  
– Observações:	
  
•  Os	
  colchetes	
  fazem	
  parte	
  da	
  classe,	
  assim	
  [[:upper:]]	
  é	
  uma	
  classe	
  
POSIX	
  dentro	
  de	
  uma	
  lista;	
  
•  As	
  classes	
  POSIX	
  levam	
  em	
  conta	
  a	
  localidade.	
  Assim,	
  no	
  Brasil	
  
[:upper:]	
  engloba:	
  
ABCDEFGHIJKLMNOPQRSTUVWXYZÇÁÀÂÃÉÈÊÕÍÌÎÓÔÒÕÚÛÙ...	
  
8	
  
Expressões	
  Regulares	
  
•  Metacaracteres	
  =po	
  âncora:	
  
– Marcam	
  uma	
  posição	
  específica	
  na	
  linha;	
  
^	
  	
   indica	
  que	
  o	
  casamento	
  deve	
  ocorrer	
  no	
  início	
  da	
  linha;	
  
$	
  	
   indica	
  que	
  o	
  casamento	
  deverá	
  ocorrer	
  no	
  final	
  da	
  linha;	
  	
  
\b	
  	
   indica	
  uma	
  borda,	
  ou	
  seja,	
  o	
  limite	
  de	
  uma	
  palavra;	
  
– Exemplos:	
  
^[0-9]	
  	
   a	
  linha	
  deve	
  ser	
  iniciada	
  com	
  um	
  número;	
  
^[^0-9]	
  	
   a	
  linha	
  não	
  pode	
  se	
  iniciar	
  com	
  número;	
  
[0-9]$	
  	
   a	
  linha	
  deverá	
  terminar	
  com	
  um	
  número;	
  
9	
  
Expressões	
  Regulares	
  
•  Metacaracteres	
  =po	
  âncora	
  (con=nuação...):	
  
– Outros	
  exemplos:	
  
^$	
   linha	
  vazia;	
  
.....$	
   5	
  úl=mos	
  caracteres	
  de	
  uma	
  linha;	
  
^.{15-80}$	
   linhas	
  com	
  15	
  a	
  80	
  caracteres;	
  
\bdia	
   dia,	
  diafragma,	
  bom-­‐dia!,	
  ...	
  
dia\b	
   dia,	
  melodia,	
  bom-­‐dia!,	
  ...	
  
\bdia\b	
   dia,	
  bom-­‐dia!,	
  ...	
  
10	
  
Expressões	
  Regulares	
  
•  Outros	
  metacaracteres:	
  
\	
  	
   funciona	
  como	
  um	
  caractere	
  de	
  escape.	
  Ele	
  serve	
  para	
  
que	
  metacaracteres	
  tenham	
  significado	
  literal.	
  Assim,	
  \.	
  
significa	
  o	
  caractere	
  ponto,	
  não	
  o	
  metacaractere	
  ponto;	
  
•  Por	
  exemplo,	
  para	
  representar	
  um	
  número	
  de	
  CPF	
  com	
  formato	
  
nnn.nnn.nnn-­‐nn	
  pode-­‐se	
  u=lizar	
  a	
  expressão:	
  
 [0-9]{3}\.[0-9]{3}\.[0-9]{3}-[0-9]{2} 
|	
   funciona	
  como	
  um	
  OU,	
  de	
  forma	
  que	
  possamos	
  listar	
  
mais	
  de	
  uma	
  opção.	
  Exemplo:	
  	
  
 boa-tarde|boa-noite	
  procura	
  pela	
  ocorrência	
  de	
  
“boa-­‐tarde”	
  ou	
  de	
  “boa-­‐noite”;	
  
11	
  
Expressões	
  Regulares	
  
•  Outros	
  metacaracteres	
  (con=nuação...):	
  
– Podemos	
  juntar	
  vários	
  caracteres	
  ou	
  metacaracteres	
  entre	
  
parênteses	
  para	
  formar	
  um	
  grupo.	
  Exemplos:	
  
(ha!)+	
   ha!,	
  ha!ha!,	
  ha!ha!ha!,	
  ...	
  
(\.[0-9]){3}	
   .0.6.2,	
  .2.8.9,	
  .6.6.6,	
  ...	
  
boa-(tarde|noite)	
   boa-­‐tarde,	
  boa-­‐noite	
  
(#|n\.|núm) 6	
   #	
  6,	
  n.	
  6,	
  núm	
  6	
  
(in|con)?certo	
   incerto,	
  concerto,	
  certo	
  
12	
  
Expressões	
  Regulares	
  
•  Outros	
  metacaracteres	
  (con=nuação...):	
  
\1...\9	
  	
   são	
  chamados	
  de	
  retrovisores,	
  pois	
  buscam	
  um	
  trecho	
  
que	
  já	
  tenha	
  casado	
  com	
  um	
  grupo	
  para	
  reu=lizá-­‐lo.	
  Por	
  exemplo,	
  	
  
(quero)-\1	
   casa	
  com	
  quero-­‐quero;	
  
De	
  forma	
  mais	
  ampla,	
  	
  
([A-Za-z]+)-\1	
  	
   casa	
  com	
  qualquer	
  palavra	
  repe=da	
  
separada	
  por	
  traço.	
  
– Outros	
  exemplos:	
  
(lenta)(mente) é \2 \1	
   lentamente	
  é	
  mente	
  lenta	
  
((band)eira)nte \1 \2a	
   bandeirante	
  bandeira	
  banda	
  
in(d)ol(or) é sem \1\2	
   indolor	
  é	
  sem	
  dor	
  
((((a)b)c)d)-1 = \1,\2,\3,\4	
   abcd-­‐1	
  =	
  abcd,abc,ab,a	
  
13	
  
Expressões	
  Regulares	
  
•  Recursos	
  avançados:	
  
(?=EXPR)	
  	
   realiza	
  uma	
  busca	
  adiante	
  (look	
  ahead)	
  
pelo	
  casamento	
  da	
  expressão	
  EXPR.	
  
– Exemplo:	
  realizando	
  a	
  verificação	
  de	
  validação	
  de	
  uma	
  
senha	
  que	
  deve	
  ter	
  no	
  mínimo:	
  
•  Uma	
  letra	
  minúscula;	
  
•  Uma	
  letra	
  maiúscula;	
  e	
  
•  Um	
  número;	
  
^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z]).{8,16}$	
  
14	
  
Exercícios	
  
•  Usando	
  os	
  metacaracteres	
  âncora,	
  escrever	
  
expressões	
  regulares	
  para	
  casar	
  com:	
  
1.  A	
  palavra	
  “frase”	
  no	
  singular	
  e	
  no	
  plural;	
  
2.  A	
  palavra	
  “letra”	
  podendo	
  conter	
  qualquer	
  combinação	
  
de	
  letras	
  maiúsculas	
  e	
  minúsculas;	
  
3.  Números	
  inteiros;	
  
4.  Hora	
  de	
  00:00	
  a	
  23:59	
  (somentehoras	
  válidas);	
  
5.  Um	
  endereço	
  IP	
  (válido);	
  
6.  Um	
  endereço	
  de	
  e-­‐mail	
  no	
  formato	
  abaixo:	
  
quaisquerLetras@quaisquerLetras.xxx	
  ,	
  onde	
  xxx	
  é	
  um	
  dos	
  
domínios:	
  .com	
  OU	
  .edu	
  OU	
  .org;	
  
15	
  
Exercícios	
  
•  Respostas:	
  
1.  A	
  palavra	
  “frase”	
  no	
  singular	
  e	
  no	
  plural;	
  
frases?	
  
2.  A	
  palavra	
  “letra”	
  podendo	
  conter	
  qualquer	
  combinação	
  
de	
  letras	
  maiúsculas	
  e	
  minúsculas;	
  
[lL][eE][tT][rR][aA]	
  
3.  Números	
  inteiros;	
  
\-?[0-9]+	
  
4.  Hora	
  de	
  00:00	
  a	
  23:59;	
  
[0-2][0-9]:[0-5][0-9]	
  
16

Outros materiais