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