Robson Alves O que torna um sonho irrealizável é a inércia de quem sonha

21abr/112

Encontre no Texto com Expressões Regulares

Vou mostrar aqui 4 exemplos simples que captura texto, grupo de texto e faz replace dentro de um trecho via Expressão Regular

As ER's transferem um poder gigantesco quando necessitamos desta tarefas e até mesmo na geração de mascarás para textbox.

 

O REGEX possui algumas opções e é muito importante entender a funcionalidade de cada um para utilizar o ER da melhor forma:

http://msdn.microsoft.com/en-us/library/yd1hzczs(v=VS.100).aspx

RegexOptions,png

 

Vamos a prática.


Buscando Texto
 String Fonte = "aonde Quer Vá, Aonde Quer Que Seja, Ande com as pés";
 private void buscaTexto()
        {

            // Instância do Regex e a palavra que vamos buscar na fonte.
            Regex regex = new Regex("Aonde");

            // Armazena a coleção de Expressões Casadas.
            MatchCollection coll = regex.Matches(Fonte);

            foreach (Match item in coll)
            {
                lblResults.Text += String.Format(" Encontrei a palavra {0} na posição {1} e Termina na Posição {2}",
					item.Value.Trim(), item.Index, item.Index + item.Value.Length);
            }
        }

Quantidade de Letras por palavras

String Fonte = "aonde Quer Vá, Aonde Quer Que Seja, Ande com as pés";
 private void buscaTextoQtdLetras()
        {
            //Busca por palavras que contenha apenas Letras Maiuscula e Minuscula
            // e tenham 3 ou mais caracteres.
            Regex regex = new Regex("[a-zA-Z]{5,}");
            // Armazena a coleção de Expressões Casadas.
            MatchCollection coll = regex.Matches(Fonte);

            foreach (Match item in coll)
            {
                lblResults.Text += String.Format(" Encontrei a palavra {0} na posição {1} e Termina na Posição {2} Que Possui {3} ou Mais", item.Value.Trim(), item.Index, item.Index + item.Value.Length, item.Value.Length);
            }
        }

Extraindo Grupo do Text

 private void ExtraindoPorGrupos()
        {
            String End = "1234 Cherry Lane, USA" + Environment.NewLine + "1234 Apple Tree Drive, Smalltown, USA " + Environment.NewLine + "3456 Chry Orchard streetm Smalltown, USA";

            //Busca da esquerda pra direita após os numeros o nome da rua, pegando os espaços \\s entre as letras e pegando todas,
            //ignorando a virgula e tudo que vem após a mesma.
            Regex regex = new Regex("^(?\\d+)\\s*(?[\\w\\s]*)", RegexOptions.Multiline);

            MatchCollection coll = regex.Matches(End);

            foreach (Match item in coll)
            {
                string Rua = item.Groups["Rua"].Value;
                String Numero = item.Groups["Numero"].Value;
                lblResults.Text += ""+ String.Format("Rua : {0} ", Rua);
                lblResults.Text += "" + String.Format("Número :{0} ", Numero);
            }
        }

Replace Com Regex

private void ReplaceTexto()
        {
            Regex regex = new Regex("^[aA]\\w+");

            lblResults.Text += "" + regex.Replace(Fonte, "Por Onde");
        }

Após rodar a aplicação o seguinte resultado é gerado:

OutPut

Muito legal, acredito que isto ajudará a ter noção do que da pra ser feito com Regex e Expressões Regulares, compensa sim dar uma estuda na sintaxe ER para .Net.

Obrigado.

Posts Relacionados:

  1. Extesion Methods
    Esse assunto é bem legal e simples, como verão abaixo. Uma classe de extensão, permite que gere novos métodos para as váriaveis do projeto como acontece em .ToString(), .ToUpper(). Pemitindo costumizar o codigo ao seu gosto, centralizando seus métodos em...
  2. Expressões Regulares
    Um dos estudos recentes que estou pondo em prática, acredito no poder da expressão regular e na sua importância, apesar de ter outras formas mais “Humanas” de se fazer a mesma coisa, é importante termos o conhecimento dessas expressões, como...
  3. Colocar Confirm() no ASP:Menu
      Bom Pessoal,para quem utiliza os benditor <asp:menu>, passa por algumas necessidades, como por exemplo, colocar javascript quando o cliente clicar sobre um dos itens. Então Vamos a Solução: Existe Duas Possibilidades, se você estiver carregando o menuItem por um...

Posted by Robson Alves

Comentários (2) Trackbacks (0)
  1. Encontre no Texto com Expressões Regulares | Robson Alves I was recommended this web site by my cousin. I’m not sure whether this post is written by him as no one else know such detailed about my difficulty. You are wonderful! Thanks! your article about Encontre no Texto com Expressões Regulares | Robson AlvesBest Regards SchaadAndy

  2. I was studying some of your blog posts on this website and I conceive this website is real instructive! Continue writing subjects like tuberculosis I love to read this kind of information and I think that all the people like this too… Many thanks…


Leave a comment

(required)

Sem trackbacks