TJMT SESSÕES TÉCNICAS EXPRESSÕES REGULARES Da Teoria à Prática by William Thiago
Conteúdo Programático <ul><li>Ok, mas, o que são expressões regulares? </li></ul><ul><li>“ Auto” o que? Fala em português....
<ul><li>No alfabeto, você aprende primeiro as letras individualmente, depois as sílabas e palavras, frases e finalmente te...
História <ul><li>1943 – Publicação de um estudo sobre o funcionamento dos neurônios. </li></ul><ul><li>195x – Descrição al...
<ul><li>Representação formal de um autômato finito, com o objetivo de determinar um padrão de texto. </li></ul><ul><li>Lei...
<ul><li>Em terra de metacaractere, quem tem um asterisco é rei. </li></ul>Metacaracteres Padrões
Representativos <ul><li>Ponto – O promíscuo . </li></ul><ul><ul><li>Curinga solitário, sempre procurando casamento. </li><...
Representativos <ul><li>Lista – A exigente   [...] </li></ul><ul><ul><li>Possui intervalos </li></ul></ul><ul><ul><ul><li>...
Quantificadores <ul><li>Opcional – O Calmo ? </li></ul><ul><ul><li>Não esquenta a cabeça, se tem, ótimo, se não, tudo bem ...
Quantificadores <ul><li>Mais – O Guloso Exigente + </li></ul><ul><ul><li>Tem que ter, um ou vários, infinitos </li></ul></...
Âncoras <ul><li>Circunflexo – O Iniciante ^ </li></ul><ul><ul><li>Marca o começo da linha </li></ul></ul><ul><ul><ul><li>^...
Outros Metacaracteres <ul><li>Escape – A Criptonita  </li></ul><ul><ul><li>Retira os poderes de quem ela acompanha </li></...
Outros Metacaracteres <ul><li>Grupo – O Agregador (...) </li></ul><ul><ul><li>Marca um conjunto para ser trabalhado </li><...
<ul><li>O caminho das pedras só é tortuoso se você não leva um mapa um bom sapato. </li></ul>Manual de Sobrevivência
Dicas <ul><li>Não complique </li></ul><ul><ul><li>Aplique a metodologia KISS. </li></ul></ul><ul><ul><ul><li>(mini|(su|hi)...
Dicas <ul><li>Evite o Curinga </li></ul><ul><ul><li>Lembre-se que ele é guloso. Ele pode comer toda sua expressão. </li></...
<ul><li>Há 10 tipos de pessoas neste mundo: aquelas que sabem contar em binário, e aquelas que não… </li></ul>Exemplos Prá...
<ul><li>CTRL+C, CTRL+V, porque ninguém faz nada sozinho. </li></ul>Bibliografia
Links <ul><li>http://guia-er.sourceforge.net/ </li></ul><ul><li>http://aurelio.net/er/ </li></ul><ul><li>http://www.addedb...
<ul><li>Aproveite, expor os pensamentos e tirar dúvidas ajuda a fixar. </li></ul>Participe! Fale sua Opinião
Upcoming SlideShare
Loading in …5
×

TJMT - Expressões Regulares

1,252 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,252
On SlideShare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
14
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

TJMT - Expressões Regulares

  1. 2. TJMT SESSÕES TÉCNICAS EXPRESSÕES REGULARES Da Teoria à Prática by William Thiago
  2. 3. Conteúdo Programático <ul><li>Ok, mas, o que são expressões regulares? </li></ul><ul><li>“ Auto” o que? Fala em português. </li></ul><ul><li>“ Metaca...” Repete por favor. </li></ul><ul><li>Mais? Calma, vou anotar. </li></ul><ul><li>Finalmente, dicas! </li></ul><ul><li>Me mostra algo prático! Em C# de preferência. </li></ul><ul><li>Onde eu procuro mais sobre isso? </li></ul><ul><li>Posso dar minha opinião? </li></ul>
  3. 4. <ul><li>No alfabeto, você aprende primeiro as letras individualmente, depois as sílabas e palavras, frases e finalmente textos. No fundo são apenas letras. </li></ul>Expressões Regulares
  4. 5. História <ul><li>1943 – Publicação de um estudo sobre o funcionamento dos neurônios. </li></ul><ul><li>195x – Descrição algébrica dos modelos desse estudo, utilizando símbolos para representar seus recém criados grupos regulares. </li></ul><ul><li>1968 – Algorítimo de busca no editor qed (Unix). Global Regular Expression Print. </li></ul><ul><li>1986 – Pacote gratuito em C: regex </li></ul>
  5. 6. <ul><li>Representação formal de um autômato finito, com o objetivo de determinar um padrão de texto. </li></ul><ul><li>Leitura atômica da esquerda para a direita </li></ul>Expressão Regular ^[0-9]+. [0-9]*|. [0-9]+$
  6. 7. <ul><li>Em terra de metacaractere, quem tem um asterisco é rei. </li></ul>Metacaracteres Padrões
  7. 8. Representativos <ul><li>Ponto – O promíscuo . </li></ul><ul><ul><li>Curinga solitário, sempre procurando casamento. </li></ul></ul><ul><ul><ul><li>Sempre casa com qualquer coisa, promíscuo. </li></ul></ul></ul><ul><ul><ul><li>n.o não, nao, nmo, ... </li></ul></ul></ul><ul><ul><ul><li>13.20 13:20, 13h20, 13.20, ... </li></ul></ul></ul><ul><li>Lista – A exigente [...] </li></ul><ul><ul><li>Sabe exatamente o que quer, só casa com quem ela conhece. </li></ul></ul><ul><ul><ul><li>n[ãa]o não, não </li></ul></ul></ul><ul><ul><ul><li>13[:.h]20 13:20, 13.20, 13h20 </li></ul></ul></ul><ul><ul><ul><li>[mpgr^]ato pato, gato, rato, mato, ^ato </li></ul></ul></ul>
  8. 9. Representativos <ul><li>Lista – A exigente [...] </li></ul><ul><ul><li>Possui intervalos </li></ul></ul><ul><ul><ul><li>200[5-9] 2005, 2006, 2007, 2008, 2009 </li></ul></ul></ul><ul><ul><ul><li>[a-zA-Z] alfabeto minúsculo e maiúsculo </li></ul></ul></ul><ul><ul><ul><li>[][-a-z] ], [, -, alfabeto minúsculo </li></ul></ul></ul><ul><li>Lista Negada – A experiente [^...] </li></ul><ul><ul><li>Devido as suas experiências no passado, sabe o que não serve para casar </li></ul></ul><ul><ul><ul><li>[^0-9] qualquer coisa fora os números </li></ul></ul></ul><ul><ul><ul><li>[^A-Z] qualquer coisa fora o alfabeto maíusculo </li></ul></ul></ul>
  9. 10. Quantificadores <ul><li>Opcional – O Calmo ? </li></ul><ul><ul><li>Não esquenta a cabeça, se tem, ótimo, se não, tudo bem </li></ul></ul><ul><ul><ul><li>ondas? onda, ondas </li></ul></ul></ul><ul><ul><ul><li>fala[r!]? fala, falar, fala! </li></ul></ul></ul><ul><ul><ul><li></?[pbi]> <p>, </p>, <b>, </b>, <i>, </i> </li></ul></ul></ul><ul><li>Asterisco – O Guloso Despreocupado * </li></ul><ul><ul><li>Pode ter, pode não ter, pode ter vários, infinitos </li></ul></ul><ul><ul><ul><li>3*0 0, 30, 330, 3330, 33333333330, ... </li></ul></ul></ul><ul><ul><ul><li>ru*a ra, rua, ruua, ruuuuuuuuuuuua, .... </li></ul></ul></ul><ul><ul><ul><li>[ar]*a a, aa, aaaa, raaa, raarararaa, ... </li></ul></ul></ul>
  10. 11. Quantificadores <ul><li>Mais – O Guloso Exigente + </li></ul><ul><ul><li>Tem que ter, um ou vários, infinitos </li></ul></ul><ul><ul><ul><li>3*0 30, 330, 3330, 33333333330, ... </li></ul></ul></ul><ul><ul><ul><li>ru*a rua, ruua, ruuuuuuuuuuuua, .... </li></ul></ul></ul><ul><li>Chaves – O Guloso de Regime {n,m} </li></ul><ul><ul><li>Sabe o cardápio mínimo e até onde pode comer </li></ul></ul><ul><ul><ul><li>a{1,3} a, aa, aaa </li></ul></ul></ul><ul><ul><ul><li>a{3} aaa </li></ul></ul></ul><ul><ul><ul><li>a{0,1} igual ao Opcional </li></ul></ul></ul><ul><ul><ul><li>a{0,} igual ao Asterisco </li></ul></ul></ul><ul><ul><ul><li>a{1,} igual ao Mais </li></ul></ul></ul>
  11. 12. Âncoras <ul><li>Circunflexo – O Iniciante ^ </li></ul><ul><ul><li>Marca o começo da linha </li></ul></ul><ul><ul><ul><li>^[0-9] linha que começa com número </li></ul></ul></ul><ul><li>Cifrão – O Fim de Papo $ </li></ul><ul><ul><li>Marca o fim da linha </li></ul></ul><ul><ul><ul><li>[0-9]$ linha que termina com número </li></ul></ul></ul><ul><li>Borda – A Bordinha das Coisas  </li></ul><ul><ul><li>Marca o começo das palavras (letras, números) </li></ul></ul><ul><ul><ul><li>dia dia, diafragma, bom-dia </li></ul></ul></ul><ul><ul><ul><li>dia dia, melodia, bom-dia </li></ul></ul></ul><ul><ul><ul><li>dia dia, bom-dia, bom-dia! </li></ul></ul></ul>
  12. 13. Outros Metacaracteres <ul><li>Escape – A Criptonita </li></ul><ul><ul><li>Retira os poderes de quem ela acompanha </li></ul></ul><ul><ul><li>Tão forte que retira os próprios poderes </li></ul></ul><ul><ul><ul><li>1.[048] 1.0, 1.4, 1.8 </li></ul></ul></ul><ul><ul><ul><li>aminho caminho </li></ul></ul></ul><ul><li>Ou – O Alternativo | </li></ul><ul><ul><li>É uma lista de palavras </li></ul></ul><ul><ul><ul><li>dia|tarde|noite dia, tarde, noite </li></ul></ul></ul><ul><ul><ul><li>http|ftp http, ftp </li></ul></ul></ul>
  13. 14. Outros Metacaracteres <ul><li>Grupo – O Agregador (...) </li></ul><ul><ul><li>Marca um conjunto para ser trabalhado </li></ul></ul><ul><ul><ul><li>(ha!)+ ha!, ha!ha!, ha!ha!ha!ha! </li></ul></ul></ul><ul><ul><ul><li>(www.)?zz.br www.zz.br, zz.br </li></ul></ul></ul><ul><ul><ul><li>boa-(tarde|noite) boa-tarde, boa-noite </li></ul></ul></ul><ul><li>Retrovisor – O Nostáulgico 1...9 </li></ul><ul><ul><li>Repete um grupo anterior </li></ul></ul><ul><ul><ul><li>(quero)-?1 quero, quero-quero </li></ul></ul></ul><ul><ul><ul><li>([a-z]+)1 bombom, lili, bibi, dudu </li></ul></ul></ul><ul><ul><ul><li>in(d)ol(or) é sem 12 indolor é sem dor </li></ul></ul></ul><ul><ul><ul><li>([A-Za-z]+) 1 corretor de duplicações </li></ul></ul></ul>
  14. 15. <ul><li>O caminho das pedras só é tortuoso se você não leva um mapa um bom sapato. </li></ul>Manual de Sobrevivência
  15. 16. Dicas <ul><li>Não complique </li></ul><ul><ul><li>Aplique a metodologia KISS. </li></ul></ul><ul><ul><ul><li>(mini|(su|hi)per)?mercado (mini|super|hiper)?mercado </li></ul></ul></ul><ul><li>Use o Circunflexo </li></ul><ul><ul><li>Se possível, case no começo! </li></ul></ul><ul><ul><li>Gaveta do chefe </li></ul></ul><ul><li>Evite a Lista Negada </li></ul><ul><ul><li>Qualquer coisa fora números não significa que você só quer letras </li></ul></ul><ul><ul><ul><li>[^aqui] </li></ul></ul></ul>
  16. 17. Dicas <ul><li>Evite o Curinga </li></ul><ul><ul><li>Lembre-se que ele é guloso. Ele pode comer toda sua expressão. </li></ul></ul><ul><ul><ul><li><b>.*</b> <b>negrito</b> e outro <b>negrito</b> </li></ul></ul></ul><ul><ul><ul><li><b>.*?</b> <b>negrito</b> e outro <b>negrito</b> </li></ul></ul></ul><ul><li>Seja Ninja </li></ul><ul><ul><li>De um passo de cada vez: Ex.: dd/mm/aaaa </li></ul></ul><ul><ul><ul><li>../../.... </li></ul></ul></ul><ul><ul><ul><li>[0-9]{2}/[0-9]{2}/[0-9]{4} </li></ul></ul></ul><ul><ul><ul><li>[0123][0-9]/[01][0-9]/[0-9]{4} </li></ul></ul></ul><ul><ul><ul><li>(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[12])/[12][0-9]{3} </li></ul></ul></ul>
  17. 18. <ul><li>Há 10 tipos de pessoas neste mundo: aquelas que sabem contar em binário, e aquelas que não… </li></ul>Exemplos Práticos
  18. 19. <ul><li>CTRL+C, CTRL+V, porque ninguém faz nada sozinho. </li></ul>Bibliografia
  19. 20. Links <ul><li>http://guia-er.sourceforge.net/ </li></ul><ul><li>http://aurelio.net/er/ </li></ul><ul><li>http://www.addedbytes.com/cheat-sheets/ </li></ul><ul><li>http://regexpal.com/ </li></ul><ul><li>http://regexp.resource.googlepages.com/analyzer.html </li></ul><ul><li>http://www.nregex.com/nregex/default.aspx </li></ul><ul><li>http://osteele.com/tools/reanimator/ </li></ul><ul><li>http://msdn.microsoft.com/en-us/library/hs600312.aspx </li></ul><ul><li>http://www.regular-expressions.info/ </li></ul><ul><li>http://regexlib.com/ </li></ul>
  20. 21. <ul><li>Aproveite, expor os pensamentos e tirar dúvidas ajuda a fixar. </li></ul>Participe! Fale sua Opinião

×