C # - Expressões regulares

UMA regular expressioné um padrão que pode ser comparado a um texto de entrada. A estrutura .Net fornece um mecanismo de expressão regular que permite essa correspondência. Um padrão consiste em um ou mais literais de caracteres, operadores ou construções.

Construções para definir expressões regulares

Existem várias categorias de caracteres, operadores e construções que permitem definir expressões regulares. Clique nos links a seguir para encontrar essas construções.

A classe Regex

A classe Regex é usada para representar uma expressão regular. Possui os seguintes métodos comumente usados ​​-

Sr. Não. Métodos e Descrição
1

public bool IsMatch(string input)

Indica se a expressão regular especificada no construtor Regex encontra uma correspondência em uma string de entrada especificada.

2

public bool IsMatch(string input, int startat)

Indica se a expressão regular especificada no construtor Regex encontra uma correspondência na string de entrada especificada, começando na posição inicial especificada na string.

3

public static bool IsMatch(string input, string pattern)

Indica se a expressão regular especificada encontra uma correspondência na string de entrada especificada.

4

public MatchCollection Matches(string input)

Pesquisa a string de entrada especificada para todas as ocorrências de uma expressão regular.

5

public string Replace(string input, string replacement)

Em uma string de entrada especificada, substitui todas as strings que correspondem a um padrão de expressão regular por uma string de substituição especificada.

6

public string[] Split(string input)

Divide uma string de entrada em uma matriz de substrings nas posições definidas por um padrão de expressão regular especificado no construtor Regex.

Para obter a lista completa de métodos e propriedades, leia a documentação da Microsoft em C #.

Exemplo 1

O exemplo a seguir corresponde a palavras que começam com 'S' -

using System;
using System.Text.RegularExpressions;

namespace RegExApplication {
   class Program {
      private static void showMatch(string text, string expr) {
         Console.WriteLine("The Expression: " + expr);
         MatchCollection mc = Regex.Matches(text, expr);
         
         foreach (Match m in mc) {
            Console.WriteLine(m);
         }
      }
      static void Main(string[] args) {
         string str = "A Thousand Splendid Suns";
         
         Console.WriteLine("Matching words that start with 'S': ");
         showMatch(str, @"\bS\S*");
         Console.ReadKey();
      }
   }
}

Quando o código acima é compilado e executado, ele produz o seguinte resultado -

Matching words that start with 'S':
The Expression: \bS\S*
Splendid
Suns

Exemplo 2

O exemplo a seguir corresponde a palavras que começam com 'm' e terminam com 'e' -

using System;
using System.Text.RegularExpressions;

namespace RegExApplication {
   class Program {
      private static void showMatch(string text, string expr) {
         Console.WriteLine("The Expression: " + expr);
         MatchCollection mc = Regex.Matches(text, expr);
         
         foreach (Match m in mc) {
            Console.WriteLine(m);
         }
      }
      static void Main(string[] args) {
         string str = "make maze and manage to measure it";

         Console.WriteLine("Matching words start with 'm' and ends with 'e':");
         showMatch(str, @"\bm\S*e\b");
         Console.ReadKey();
      }
   }
}

Quando o código acima é compilado e executado, ele produz o seguinte resultado -

Matching words start with 'm' and ends with 'e':
The Expression: \bm\S*e\b
make
maze
manage
measure

Exemplo 3

Este exemplo substitui o espaço em branco extra -

using System;
using System.Text.RegularExpressions;

namespace RegExApplication {
   class Program {
      static void Main(string[] args) {
         string input = "Hello   World   ";
         string pattern = "\\s+";
         string replacement = " ";
         
         Regex rgx = new Regex(pattern);
         string result = rgx.Replace(input, replacement);

         Console.WriteLine("Original String: {0}", input);
         Console.WriteLine("Replacement String: {0}", result);    
         Console.ReadKey();
      }
   }
}

Quando o código acima é compilado e executado, ele produz o seguinte resultado -

Original String: Hello World   
Replacement String: Hello World