Expressões Regulares (Bio Labs #5)

2,503 views

Published on

http://blog.lucascaton.com.br/?p=979

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,503
On SlideShare
0
From Embeds
0
Number of Embeds
760
Actions
Shares
0
Downloads
30
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Expressões Regulares (Bio Labs #5)

  1. 1. EXPRESSÕES REGULARES BIO LABS #5 LUCAS CATÓN
  2. 2. POR QUE UMA APRESENTAÇÃOSOBRE EXPRESSÕES REGULARES?MUITO ÚTEISDEPOIS DE POUCO TEMPO, TUDO PARECE MAIS FÁCILASSUNTO CONSISTENTE, NÃO SOFRE GRANDESALTERAÇÕS
  3. 3. NOMES...EXPRESSÕES REGULARESEXPREGERREGULAR EXPRESSIONSREGEXREGEXP
  4. 4. O QUE É? SEGUNDO A WIKIPEDIA... “(...) PROVÊ UMA FORMA CONCISA E FLEXÍVEL DEIDENTIFICAR CADEIAS DE CARACTERES DE INTERESSE, COMO CARACTERES PARTICULARES, PALAVRAS OU PADRÕES DE CARACTERES.”
  5. 5. ?
  6. 6. PRA QUE SERVE?“(...) UMA MANEIRA DE PROCURAR UM TEXTOQUE VOCÊ NÃO LEMBRA EXATAMENTE COMO É,MAS TEM IDÉIA DAS VÁRIAÇÕES POSSÍVEIS.”
  7. 7. POR EXEMPLO Saqueto Sacketo Sacheto Sachetto Sa(qu|ch|ck)ett?o
  8. 8. PRA QUE SERVE?“(...) UMA MANEIRA DE PROCURAR UM TEXTOQUE VOCÊ NÃO LEMBRA EXATAMENTE COMO É,MAS TEM IDÉIA DAS VÁRIAÇÕES POSSÍVEIS.”
  9. 9. PRA QUE SERVE?VALIDAR EMAIL, IP, TELEFONE, DATA, CEP, CPF..
  10. 10. POR EXEMPLO Endereço IPd{1,3} . d{1,3} . d{1,3} . d{1,3} 255 . 180 . 45 . 80 192 . 168 . 120 . 55 300 . 400 . 500 . 600
  11. 11. POR EXEMPLO Endereço IPb(?:(?: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
  12. 12. TAMANHO NÃO É DOCUMENTO.ÀS VEZES UMA REGEX MENOR É MELHOR... E ÀS VEZES NÃO.
  13. 13. RESUMINDO... “(...) É UM MÉTODO FORMALDE SE ESPECIFICAR UM PADRÃO DE TEXTO.”
  14. 14. ONDE POSSO USAR?
  15. 15. VAMOS APRENDER!
  16. 16. .?*+^$|[]{}()ER...SÃO METACARACTERESQUE CASAM UM PADRÃO. “MATCH” “PATTERN”
  17. 17. UM EXEMPLO RÁPIDO [grp]ato gato rato pato
  18. 18. METACARACTERES
  19. 19. Metacaractere Nome . Ponto [] Lista [^] Lista negada ? Opcional * Asterisco + Mais {} Chaves
  20. 20. Metacaractere Nome ^ Cicunflexo $ Cifrão b Borda Escape | Ou () Grupo 1 $1 Retrovisor
  21. 21. REPRESENTANTESMetacaractere Nome Função Um caracter . Ponto qualquer Lista de caracteres [...] Lista permitidos Lista de caracteres [^...] Lista negada proibidos
  22. 22. QUANTIFICADORESMetacaractere Nome Função ? Opcional Zero ou um * Asterisco Zero, um ou mais + Mais Um ou mais {n,m} Chaves De n até m
  23. 23. ÂNCORASMetacaractere Nome Função ^ Circunflexo Início da linha $ Cifrão Fim da linha Início ou fim da b Borda palavra
  24. 24. OUTROSMetacaractere Nome Função Torna o literal o + Escape caracter + | Ou Ou um ou outro (...) Grupo Delimita um grupo 1...9 Texto casado nos Retrovisor $1...$9 grupos 1...9
  25. 25. REPRESENTANTESMetacaractere Nome Função Um caracter . Ponto qualquer Lista de caracteres [...] Lista permitidos Lista de caracteres [^...] Lista negada proibidos
  26. 26. PONTOExpressão Casa com n.o não, nao, ... .eclado teclado, Teclado, ...e.tendido estendido, extendido, eztendido, ...
  27. 27. PONTOExpressão Casa com 12.45 12:45, 12 45, 12.45, ... <.> <p>, <i>, <b>, ...
  28. 28. REPRESENTANTESMetacaractere Nome Função Um caracter . Ponto qualquer Lista de [...] Lista caracteres permitidos Lista de caracteres [^...] Lista negada proibidos
  29. 29. LISTAExpressão Casa com n[ãa]o não, nao [Tt]eclado Teclado, tecladoe[sx]tendido estendido, extendido 12[:. ]45 12:45, 12.45, 12 45 <[pib]> <p>, <i>, <b>
  30. 30. LISTAExpressão Casa com n[ãa]o não, nao [Tt]eclado Teclado, tecladoe[sx]tendido estendido, extendido 12[:. ]45 12:45, 12.45, 12 45 <[pib]> <p>, <i>, <b>
  31. 31. LISTAExpressão Casa com<[PIBpib]> <P>, <I>, <B>, <p>, <i>, <b>
  32. 32. LISTAO que eu preciso ExpressãoUm número qualquer [0123456789]
  33. 33. LISTAO que eu preciso ExpressãoHora no formado [0123456789][0123456789]:[0123... hh:mm
  34. 34. DÁ PRA MELHORAR?
  35. 35. INTERVALOS!
  36. 36. LISTAO que eu preciso ExpressãoHora no formado [0-9][0-9]:[0-9][0-9] hh:mm
  37. 37. DÁ PRA MELHORAR AINDA MAIS?
  38. 38. LISTAO que eu preciso ExpressãoHora no formado [012][0-9]:[0-5][0-9] hh:mm
  39. 39. LISTAExpressão Casa com A-z Um monte de coisas A-Za-z Letras maiusculas e minusculas Letras maiusculas e minusculasA-Za-z0-9 e ainda números
  40. 40. REPRESENTANTESMetacaractere Nome Função Um caracter . Ponto qualquer Lista de caracteres [...] Lista permitidos Lista de [^...] Lista negada caracteres proibidos
  41. 41. LISTA NEGADAExpressão Casa com [^0-9] a, b, c, %, #, $, ... Qualquer coisa que não seja o espaço [:;,.!?][^ ] após a pontuação
  42. 42. QUANTIFICADORESMetacaractere Nome Função ? Opcional Zero ou um * Asterisco Zero, um ou mais + Mais Um ou mais {n,m} Chaves De n até m
  43. 43. MAS ANTES...COMO SE LÊ UMA EXPRESSÃO REGULAR?
  44. 44. fala[r!]falar fala!
  45. 45. fala[r!]?
  46. 46. OPCIONALExpressão Casa com fala[r!]? falar, fala!, fala <p>, <i>, <b></?[pib]> </p>, </i>, </b>
  47. 47. QUANTIFICADORESMetacaractere Nome Função ? Opcional Zero ou um Zero, um ou * Asterisco mais + Mais Um ou mais {n,m} Chaves De n até m
  48. 48. ASTERISCOExpressão Casa com 7*0 0, 70, 770, ..., 7777777777777770, ... bi*p bp, bip, biip, biiiiiiiiip, ... b[ip]* b, bi, bp, bip, biipp, bpipi, biiiiiip, bpppp, ...
  49. 49. ASTERISCOExpressão Casa com</?[bip] *> </b>, </b >, <b >, ..., <p >, ...
  50. 50. GULODICE! ? * + {}
  51. 51. ASTERISCOExpressão Casa com a [ar]*a ara arara
  52. 52. CORINGA! .*
  53. 53. QUANTIFICADORESMetacaractere Nome Função ? Opcional Zero ou um * Asterisco Zero, um ou mais + Mais Um ou mais {n,m} Chaves De n até m
  54. 54. MAISExpressão Casa com 7+0 70, 770, ..., 7777777777777770, ... bi+p bip, biip, biiiiiiiiip, ... b[ip]+ bi, bp, bip, biipp, bpipi, biiiiiip, bpppp, ...
  55. 55. QUANTIFICADORESMetacaractere Nome Função ? Opcional Zero ou um * Asterisco Zero, um ou mais + Mais Um ou mais {n,m} Chaves De n até m
  56. 56. CHAVESMetacaractere Repetições {1,3} De 1 à 3 {3,} Pelo menos 3 (3 ou mais) {0,3} Até 3 {3} Exatamente 3 {1} Exatamente 1 {0,1} Zero ou 1 ? {0,} Zero ou mais * {1,} Um ou mais +
  57. 57. ÂNCORASMetacaractere Nome Função ^ Circunflexo Início da linha $ Cifrão Fim da linha Início ou fim da b Borda palavra
  58. 58. ÂNCORASExpressão Casa com ^abc abcdef... xyz$ ...uvwxyz sb macãs, bananas, uvas
  59. 59. OUTROSMetacaractere Nome Função Torna o literal o + Escape caracter + | Ou Ou um ou outro (...) Grupo Delimita um grupo 1...9 Texto casado nos Retrovisor $1...$9 grupos 1...9
  60. 60. OUTROS Expressão Casa com lua* lua*gato|pato|rato gato, pato, rato(d{1,3}.?){4} 200.135.40.30, 8.8.8.8 texto (.*) 1 texto
  61. 61. OUTROS Expressão Casa com 1+2? 1+2? bom-dia|boa-tarde bom-dia, boa-tarde www.bioritmo.com.br (www.)?bioritmo.com.br bioritmo.com.br 192.168.0.5d{1,3}.d{1,3}.d{1,3}.(d{1,3}) 1 5
  62. 62. abcdefs/(abc)(def)/21/g defabc
  63. 63. METACARACTERES “MODERNOSOS”
  64. 64. UM PONTO NEGATIVO...
  65. 65. CONCLUSÃO APRENDER EXPRESSÕES REGULARES É COMO O ALFABETO... VOCÊ APRENDER PRIMEIRO AS LETRAS INDIVIDUALMENTE.DEPOIS AS SÍLABAS, AS PALAVRAS, FRASES E FINALMENTE OS TEXTOS. MAS NO FUNDO, SÃO APENAS LETRAS!
  66. 66. REFERÊNCIAS
  67. 67. REFERÊNCIAShttp://rubular.com/
  68. 68. JABA MODE=ON
  69. 69. REFERÊNCIAShttps://github.com/lucascaton/rugex
  70. 70. OBRIGADO!
  71. 71. DÚVIDAS?

×