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[c].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. ;)
2977b0e2-3e6f-4e4a-991e-b835db809b16|3|5.0
C#
regex