**Soru:** Regex kullanımına ne zaman başvurmalıyım, ne zaman kaçınmalıyım? **Kısa cevap:** Regex güçlü ama maliyetli bir araç. Kullanmadan önce şu soruları sor: problemi regex olmadan çözebilir miyim? Cevap hayırsa, devam et. --- **1. Sabit bir desen mi arıyorum, yoksa değişken mi?** Eğer aradığın şey sabit bir metinse (`"hata:"`, `"Error"`) basit bir `indexOf` veya `contains` çağrısı yeterlidir. Regex kullanımı okunurluğu gereksiz yere düşürür. Değişken bir desen varsa ("bir veya daha fazla rakam, ardından tire, ardından harf") regex mantıklı hale gelir. **2. Dil zaten bunu yapabiliyor mu?** Birçok programlama dilinde string manipulation için yerleşik yöntemler var: `split`, `trim`, `startsWith`, `endsWith`, `replace`. Bu yöntemler regex kullanımına göre daha okunabilir ve çoğu zaman daha hızlıdır. Bunları önce dene. **3. Bunu ben mi bakacağım, yoksa ekip mi?** Regex yazdıktan iki hafta sonra kendi yazdığını anlayamayabilirsin. Ekip geliştirmesinde karmaşık regex ifadeleri teknik borç biriktirir. Eğer ifade bir satır yorumla açıklanamıyorsa yapıyı gözden geçir ya da satır satır anlatan bir yorum ekle. **4. Performans kritik mi?** Büyük metin dosyaları üzerinde veya sıkça çalışan döngülerde regex kullanımı performans sorununa yol açabilir. Bazı regex motorları belirli desenlerde "catastrophic backtracking" denilen üstel zaman karmaşıklığına düşer. Performans kritikse regex'i profilden geçir. **5. HTML veya JSON mu parse ediyorum?** Regex ile HTML parse etme, bu ünlü bir tuzak. HTML iç içe geçmiş ve düzensiz yapısıyla regex'in düz desen mantığına uymaz. HTML için dedicated bir parser kullan. JSON için de aynı şey geçerli: `JSON.parse()` varken regex kullanmak hem hatalı hem de gereksizdir. --- **Regex kullanımına uygun senaryolar:** - Log dosyasından belirli formattaki satırları çıkarmak - Form validasyonu (e-posta, telefon, posta kodu formatı) - Metin içinde çok sayıda benzer deseni bul-değiştir - Dosya adlarını veya URL'leri belirli kurallara göre filtreleme --- **Regex yazarken pratik öneriler:** - İfadeyi önce düz dille yaz: "üç rakam, tire, dört rakam", sonra bunu desene çevir: `\d{3}-\d{4}` - Çevrim içi regex test araçlarını kullan; hem doğru çalışıp çalışmadığını görürsün hem de ifadenin açıklamasını alırsın - Yakaladığın grupları adlandır: `(?P<yil>\d{4})`, altı ay sonra ne yakaladığını hatırlarsın - Aşırı karmaşık tek bir regex yerine birden fazla basit adım tercih et