Como regex são úteis! Quer ver um exemplo? Hoje eu precisava encontrar números inteiros dentro de uma string, queria fazer de um jeito rápido e fácil e sugeriram-me usar a classe Regex do System.Text.RegularExpressions.

O código ficou muito simples, abaixo coloco um exemplo parecido com o que utilizei:

string texto = "Quero achar os números 5 e 255!";

Regex regex = new Regex(@"\d+");
Match match = regex.Match(texto);

Console.WriteLine(match.Value);
Console.WriteLine(match.NextMatch().Value);

Neste caso era de conhecimento prévio que haviam apenas dois números na string por isso foi possível utilizar NextMatch() para retornar a próxima ocorrência encontrada. Uma maneira mais elegante seria utilizar a classe MatchCollection, conforme demonstrado a seguir:

string texto = "Quero achar os números 5, 78, 67 e 255!";

Regex regex = new Regex(@"\d+");
MatchCollection match = regex.Matches(texto);

if (match.Count > 0)
{
    for (int c = 0; c < match.Count; c++)
    {
        Console.WriteLine(match.Value); 
    }
}

Dessa forma não importa o número de ocorrências encontradas. A classe Match também é capaz de retornar a posição onde o número foi encontrado.

Quer encontrar uma data ao invés de um número? Monte uma expressão regular pra isso. 😉