2026-08-11

Metin Bul ve Değiştir Rehberi: Regex ve Pratik İpuçları

Metinlerde toplu bul ve değiştir yapmanın püf noktalarını, Regex desenlerini, kaçış karakterlerini ve editör kısayollarını bu kapsamlı rehberde öğrenin.

metin-duzenlemeregexdeveloper-toolsmetin-araclari
  • Metin bul ve değiştir operasyonları, yüzlerce satırlık veri listelerini ve karmaşık kod bloklarını saniyeler içinde yeniden yapılandırır.
  • Düz metin aramasının yetersiz kaldığı değişken veri kalıplarında Düzenli İfadeler (Regex) esnek eşleşme kuralları sağlar.
  • Yakalama grupları ve geriye başvurular ($1, $2) metin parçalarının sırasını bozmadan yeni biçimlere dönüştürmenin en temiz yoludur.
  • Kaçış karakterleri (\n, \t, \s) çok satırlı blokları ve gizli boşluk kirliliğini tek hamlede temizler.

Legacy bir kod tabanında veya devasa bir CSV dosyasında yüzlerce satırı tek tek gezerek kelime aradıysanız, o işin ne kadar riskli olduğunu iyi bilirsiniz. Yanlış bir harfi değiştirmek koca bir fonksiyonu çökertebilir. Bazen basit bir değişken adını güncellemek istersiniz, bazen de binlerce satırlık veri günlüğündeki bozuk tarihleri baştan aşağı hizalamanız gerekir.

İşin sırrı basit bir kelime takasından ibaret değildir. Düzenli ifadeler (Regex) ve yakalama grupları devreye girdiğinde, saatler sürecek manuel işler tek bir komuta indirgenir.

Düz Metin Arama ile Regex Arasındaki Temel Farklar Nelerdir?

Düz metin arama işlemi, aranan karakter dizisinin hedef metinde birebir aynı sırayla bulunmasını hedefler. Regex (Düzenli İfadeler) ise sabit bir kelime yerine bir deseni, kuralı veya biçim şablonunu yakalar. Değişkenlik gösteren verilerde düz metin arama tamamen tıkanırken Regex doğrudan sonuca ulaştırır.

Sabit bir alan adını eski-site.com yerine yeni-site.com yapmak için standart arama fazlasıyla yeterlidir. Ancak farklı formatlardaki telefon numaralarını, e-posta adreslerini ya da değişken boşlukları yakalamak istediğinizde desene dayalı arama şart olur.

İki yöntemin pratikteki ayrımı şu teknik noktalarda belirginleşir:

| Karşılaştırma Kriteri | Düz Metin Arama | Regex Arama | |---|---|---| | Sabit kelime değiştirme | Hızlı, güvenli ve hafif | Gereksiz işlemci yükü | | Değişken tarih formatı (2026-08-11) | Yetersiz kalır | Tek bir desenle çözülür | | Çoklu boşlukları teke indirme | Tekrarlı denemeler gerektirir | \s+ ile tek seferde temizlenir | | Büyük/Küçük harf esnekliği | Aç/kapa seçeneğine bağlı | Bayraklarla (i, g, m) tam denetim |

Tarayıcıda hızlıca arama ve değiştirme denemeleri yapmak için metin bul ve değiştir aracı istemci tarafında çalışarak pratik bir çözüm sunar. Karmaşık kurallarınızı canlı olarak denemek isterseniz regex test aracı anlık geri bildirim verir.

Kaçış Karakterleri ve Boşluk Denetimi Nasıl Yapılır?

Kaçış karakterleri, klavyede doğrudan basılamayan veya özel anlam taşıyan sembolleri arama motoruna bildirmek için ters eğik çizgi (\) ile kurulan özel dizilerdir. En yaygın kullanılan kaçış karakterleri satır sonlarını (\n), sekme boşluklarını (\t) ve tüm boşluk türlerini (\s) temsil eder.

Veri aktarımlarında satır sonlarındaki görünmeyen boşluklar veya sekme yerine boşluk kullanımı veritabanı hatalarına yol açar. En sık başvurulan kaçış sembolleri şunlardır:

\n  : Yeni satır (Line Feed)
\r  : Satır başı (Carriage Return)
\t  : Tab (Sekme karakteri)
\s  : Herhangi bir boşluk (boşluk, sekme, satır sonu)
\S  : Boşluk olmayan herhangi bir karakter
\d  : Herhangi bir rakam (0-9)
\w  : Harf, rakam veya alt çizgi [a-zA-Z0-9_]

Diyelim alt alta yazılmış isim listelerini virgülle ayrılmış tek bir satıra çevirmek istiyorsunuz. Aranacak alana \n, değiştirilecek alana ise , yazdığınızda tüm listeyi anında tek bir satırda toplarsınız.

Yakalama Grupları ile Metin Sıralaması Nasıl Değiştirilir?

Yakalama grupları (capturing groups), Regex deseninde parantez içine alınan bölümleri hafızaya kaydederek değiştirme aşamasında $1, $2 gibi yer tutucularla yeniden dizmenizi sağlar. Bu yöntem özellikle ad-soyad ters çevirme, tarih biçimi dönüştürme ve kod refactoring adımlarında büyük esneklik sunar.

Gün.Ay.Yıl şeklinde kaydedilmiş yüzlerce tarihi ele alalım. Bunları ISO standardı olan Yıl-Ay-Gün formatına dönüştürmek için gruplama mantığı kullanılır:

Girdi Metni:
11.08.2026
25.12.2025

Arama Deseni (Regex):
(\d{2})\.(\d{2})\.(\d{4})

Değiştirme Değeri:
$3-$2-$1

Çıktı Metni:
2026-08-11
2025-12-25

Birinci parantez günü ($1), ikinci parantez ayı ($2), üçüncü parantez ise yılı ($3) yakalar. Değiştirme alanına $3-$2-$1 yazdığınızda sistem yakalanan parçaların yerini yeni dizilime göre kurar.

JavaScript tarafında bu mantık doğrudan yerleşik replace metoduyla işletilir:

const rawText = "Yilmaz, Ahmet\nKaya, Mehmet\nDemir, Ayse";
const regexPattern = /^([A-Za-zÇĞİÖŞÜçğıöşü]+),\s*([A-Za-zÇĞİÖŞÜçğıöşü]+)$/gm;

// $2 yakalanan adi, $1 ise soyadini temsil eder
const formattedText = rawText.replace(regexPattern, "$2 $1");

console.log(formattedText);
// Cikti:
// Ahmet Yilmaz
// Mehmet Kaya
// Ayse Demir

Metinlerinizin toplam uzunluğunu ve karakter sayısını takip etmek için işlem öncesinde kelime sayacı ile kontrol yapabilirsiniz.

Toplu Değiştirme Yaparken Veri Kaybını Önleme Yöntemleri

Büyük dosyalarda toplu değiştirme yaparken ufak bir dikkatsizlik tüm veri setinin bozulmasına yol açar. "Tümünü Değiştir" butonuna basmadan önce dikkat edilmesi gereken teknik kurallar vardır:

  • İlk Eşleşmeleri Kontrol Edin: Genel değiştirmeyi çalıştırmadan önce ilk 3-4 eşleşmeyi adım adım inceleyin. Beklenmedik bir kelimenin içinde eşleşme olup olmadığını gözlemleyin.
  • Kelime Sınırlarını Belirleyin: Kısa kelimeleri ararken \b (kelime sınırı) parametresini kullanmayı unutmayın. Örneğin in kelimesini ararken \bin\b kullanmazsanız içinde, internet ve plugin kelimelerinin içindeki harfleri de bozarsınız.
  • Açgözlü (Greedy) Eşleşmelere Dikkat Edin: Regex içindeki .* ifadesi satırın sonuna kadar her şeyi yutar. Sadece hedeflenen kısmı yakalamak için .*? (tembel / lazy) eşleşme tercih edilmelidir.
  • Yedek Alarak İlerleyin: İşlem yapacağınız metnin orijinal halini mutlaka panoda veya ayrı bir sekmede saklayın.

Temel kuralları detaylandırmak için regex rehberi içeriğindeki desen yapılarını inceleyebilirsiniz.

Sıkça Sorulan Sorular

Toplu bul ve değiştir işlemi geri alınabilir mi?

Masaüstü kod editörlerinde Ctrl+Z tuş kombinasyonuyla işlem geri alınabilir. Tarayıcı tabanlı araçlarda ise beklenmedik veri kaybı yaşamamak için işlemden önce orijinal metnin bir kopyasını saklamak güvenli yoldur.

Kelime sınırı (word boundary) ne işe yarar?

Kelime sınırı \b, aranan karakter dizisinin başka bir sözcüğün eki veya parçası olarak değil, bağımsız bir tam kelime olarak eşleşmesini sağlar.

Çok satırlı aramalarda bayraklar (flags) nasıl çalışır?

Çok satırlı mod bayrağı m, satır başı ^ ve satır sonu $ işaretlerinin tüm belgenin başı ve sonu yerine her bir bağımsız satırın başında ve sonunda eşleşmesini sağlar.

Değiştirme alanında büyük ve küçük harf dönüşümü yapılabilir mi?

Bazı gelişmiş düzenleyicilerde \U$1 veya \L$1 gibi kaçış dizileriyle yakalanan grupların harf büyüklüğü değiştirilebilir; standart JavaScript ortamlarında ise bu işlem replace içine verilen callback fonksiyonlarıyla çözülür.