typestar

Match y grupos en C#

Los grupos con nombre convierten una línea de log en campos.

using System.Text.RegularExpressions;

var log = "GET /api/users 200 in 45ms";
var pattern = new Regex(@"(?<verb>GET|POST) (?<path>\S+) (?<code>\d{3})");

var m = pattern.Match(log);
if (m.Success)
{
    Console.WriteLine($"verb: {m.Groups["verb"].Value}");
    Console.WriteLine($"path: {m.Groups["path"].Value}");
    Console.WriteLine($"code: {m.Groups["code"].Value}");
}

Cómo funciona

  1. La sintaxis (?<name>...) nombra lo que el patrón captura.
  2. Match encuentra la primera aparición; Success protege las lecturas.
  3. m.Groups["path"] lee una captura por nombre, no por posición.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
12
Caracteres a escribir
363
Tokens
62
Ritmo de tres estrellas
80 tpm

Al ritmo de tres estrellas de 80 tokens por minuto, este intento toma unos 46 segundos.

Escribe este fragmento

Paso 1 de 3 en Expresiones regulares; paso 1 de 17 en La biblioteca de .NET.

Siguiente →