typestar

Matches y LINQ en C#

Cada aparición, directo a un pipeline de LINQ.

using System.Text.RegularExpressions;

var doc = "Widths: 120px, 80px and 44px (min 12px).";

// Matches encuentra cada ocurrencia; LINQ sigue desde ahí
var sizes = Regex.Matches(doc, @"(\d+)px")
    .Select(m => int.Parse(m.Groups[1].Value))
    .ToList();

Console.WriteLine(string.Join(",", sizes));
Console.WriteLine($"max {sizes.Max()}, sum {sizes.Sum()}");

Cómo funciona

  1. Regex.Matches encuentra todas las coincidencias, no solo la primera.
  2. La colección se enumera, así que Select mapea capturas a ints.
  3. Max y Sum terminan el trabajo que el regex empezó.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
11
Caracteres a escribir
354
Tokens
65
Ritmo de tres estrellas
85 tpm

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

Escribe este fragmento

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

← Anterior Siguiente →