TJMT SESSÕES TÉCNICAS EXPRESSÕES REGULARES Da Teoria à Prática by William Thiago
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?
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
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
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]+$
Em terra de metacaractere, quem tem um asterisco é rei. Metacaracteres Padrões
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
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
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, ...
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
Â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!
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
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
O caminho das pedras só é tortuoso se você não leva um mapa um bom sapato. Manual de Sobrevivência
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]
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}
Há 10 tipos de pessoas neste mundo: aquelas que sabem contar em binário, e aquelas que não… Exemplos Práticos
CTRL+C, CTRL+V, porque ninguém faz nada sozinho. Bibliografia
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/
Aproveite, expor os pensamentos e tirar dúvidas ajuda a fixar. Participe! Fale sua Opinião

TJMT - Expressões Regulares

  • 1.
  • 2.
    TJMT SESSÕES TÉCNICASEXPRESSÕES REGULARES Da Teoria à Prática by William Thiago
  • 3.
    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?
  • 4.
    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
  • 5.
    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
  • 6.
    Representação formal deum 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]+$
  • 7.
    Em terra demetacaractere, quem tem um asterisco é rei. Metacaracteres Padrões
  • 8.
    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
  • 9.
    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
  • 10.
    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, ...
  • 11.
    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
  • 12.
    Â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!
  • 13.
    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
  • 14.
    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
  • 15.
    O caminho daspedras só é tortuoso se você não leva um mapa um bom sapato. Manual de Sobrevivência
  • 16.
    Dicas Não compliqueAplique 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]
  • 17.
    Dicas Evite oCuringa 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}
  • 18.
    Há 10 tiposde pessoas neste mundo: aquelas que sabem contar em binário, e aquelas que não… Exemplos Práticos
  • 19.
    CTRL+C, CTRL+V, porqueninguém faz nada sozinho. Bibliografia
  • 20.
    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/
  • 21.
    Aproveite, expor ospensamentos e tirar dúvidas ajuda a fixar. Participe! Fale sua Opinião