Avatar ·

Pourquoi \\d en C# est-il plus lent que [0-9] et comment le corriger ?

Bonjour, collègues ! J'écris un parser de logs en C# utilisant des expressions régulières. J'ai remarqué un comportement étrange : lorsque j'utilise \\d pour rechercher des chiffres, la performance chute de plusieurs fois par rapport à [0-9]. Voici un exemple de code que je 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++) {