Arquivo
Regex .NET – Regular Expression
Olá pessoal, neste artigo irei demonstrar como utilizar as famosas Regular Expression (Expressões Regulares) no .NET. Para quem não sabe Regular Expression de acordo com o site Wikipédia é uma forma concisa e flexível de identificar cadeias de caracteres dentro de um texto independente de plataforma. Em outras palavras significa que você pode utiliza-la quando deseja pesquisar seu texto tendo como filtro uma padrão de caracteres, ou então verificar se um formato de texto é válido e entre outras coisas. O objetivo deste artigo é demonstrar como o .NET trabalha com essas expressões regulares e não como as expressões funcionam. Para mais informações sobre Regular Expression segue abaixo alguns links.
http://pt.wikipedia.org/wiki/Express%C3%A3o_regular – Wikipédia
http://msdn.microsoft.com/en-us/library/az24scfc.aspx – Site da Microsoft
http://regexlib.com/Search.aspx – Contém uma série de expressões como cpf, cnpj e etc..
No mundo .NET nós temos o namespace System.Text.RegularExpression que permite trabalharmos com as Expressões.
Para fazer uma simples validação utilizamos o método estático IsMatch da classe Regex. Segue abaixo um exemplo.
- Console.WriteLine(Regex.IsMatch("12345", @"^\d{5}"));
- Console.WriteLine(Regex.IsMatch("1234", @"^\d{5}"));
Nestes dois exemplos estou utilizando a expressão “^\d{5}” que significa 5 dígitos ou mais para validar a string “12345” e a string “1234”. No primeiro caso o Regex.IsMatch retorna true já no segundo o retorno é falso, indicando que a string não passou pelo teste da expressão.
No método IsMatch você ainda tem a opção de configurar o funcionamento do mesmo utilizando o enumerador RegexOptions. Segue abaixo um exemplo de utilização, porém o enumerador tem muitas opções para você escolher.
- Regex.IsMatch("12345", @"^\d{5}", RegexOptions.Compiled)
Com o método Match você pode extrair partes do texto que estão de acordo com sua regular expression. Segue abaixo um exemplo:
- Match m = Regex.Match("Blog do: Francisco Gonçalves", "Blog do: (.*$)");
- Console.WriteLine(m.Groups[1]);
- Console.WriteLine(m.Success);
Na primeira linha estou passando como parâmetro a string que será verificada e como segundo parâmetro qual será o pattern de extração. Na segunda linha estou verificando o primeiro grupo que foi extraído do texto e na última linha estou verificando a propriedade que indica se a extração foi um sucesso ou não.
A classe Regex tem um método estático para substituição de string chamado Replace. Veja como utilizar.
- Console.WriteLine(Regex.Replace("1a2v3c", @"[\d]", "#"));
Neste exemplo estou substituindo todos os numerais da string “1a2v3c” por “#”.
Este foi um post pequeno, porém espero que seja útil para o seu dia-a-dia. Até o próximo.