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++)