kesinlikle normal ifadeyle kullanmam gerekir mi? Aynı işlem, basit bir döngü kullanılarak çok daha hızlı bir şekilde gerçekleştirilebilir.
private IEnumerable<string> getnums(string num)
{
for (int i = 0; i < num.Length - 3; i++)
{
yield return num.Substring(i, 4);
}
}
private IEnumerable<string> DoIt(string num)
{
var res = Regex.Matches(num, @"(?=(\d{4}))")
.Cast<Match>()
.Select(p => p.Groups[1].Value)
.ToList();
return (IEnumerable<string>)res;
}
Basit döngü, RegEx sürümünün yaklaşık yarısını alır.
static void Main(string[] args)
{
var num = "2345678901";
Stopwatch timer = new Stopwatch();
timer.Start();
foreach (var number in getnums(num))
{
// Yum yum numbers
}
timer.Stop();
Console.WriteLine(timer.Elapsed.Ticks);
timer.Reset();
timer.Start();
foreach (var number in DoIt(num))
{
// Yum yum numbers
}
timer.Stop();
Console.WriteLine(timer.Elapsed.Ticks);
}
Şimdi bunun çalıştığını biliyoruz, ne anlama geliyor? –
Ah! Güncelleme için teşekkürler. –
Bu aslında istenen sonucu eşleşmiyor, ancak her kombinasyonla eşleşiyor ve bu eşleşme için bir yakalama grubuna koyar ... Evet, işe yarıyor ve bir göz atmaksızın mümkün olduğunu sanmıyorum, ama bu çok değerli bir not. düşünüyorum. – Bikonja