Avatar ·

Warum \\d in C# langsamer ist als [0-9] und wie man das behebt?

Hallo Kollegen! Ich schreibe einen Log-Parser in C# mit regulären Ausdrücken. Mir ist ein seltsames Verhalten aufgefallen: Wenn ich \\d zum Suchen von Ziffern verwende, sinkt die Leistung um ein Vielfaches im Vergleich zu [0-9]. Hier ist ein Beispielcode, den ich teste: ```csharp using System; using System.Diagnostics; using System.Text.RegularExpressions; class Program { static void Main() { string input = string.Concat(Enumerable.Repeat("1234567890", 100000)); var sw = Stopwatch.StartNew(); for (int i = 0; i < 1000; i++) { Regex.Match(input, @"\\d+"); } sw.Stop(); Console.WriteLine($"\\\\d: {sw.ElapsedMilliseconds} ms"); sw.Restart(); for (int i = 0; i < 1000; i++)