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
Regex.Matchesencuentra todas las coincidencias, no solo la primera.- La colección se enumera, así que
Selectmapea capturas a ints. MaxySumterminan el trabajo que el regex empezó.
Palabras clave y builtins usados aquí
intstringusingvar
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.
Paso 3 de 3 en Expresiones regulares; paso 3 de 17 en La biblioteca de .NET.