0Pricing
Java Academy · Ders

Düzenli İfadelerle Değiştirme

replaceAll ve geri başvurular

Düzenli İfadelerle Değiştirme, CoddyKit'te ücretsiz bir Java Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Java Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Java Academy kursu toplamda 4 dersten oluşur.

Düzenli İfadeyle Değiştirme

Düzenli ifade yalnızca arama için kullanılmaz; metni dönüştürebilir. replaceAll, her eşleşmeyi bir değiştirme dizesiyle değiştirir.

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class Main {
    public static void main(String[] args) {
        Matcher m = Pattern.compile("\\d+").matcher("a1b22c333");
        System.out.println(m.replaceAll("#"));
    }
}

String.replaceAll Kısayolu

String.replaceAll(regex, replacement), deseni kendi içinde derleyen kullanışlı bir tek satırlık çözümdür.

public class Main {
    public static void main(String[] args) {
        String cleaned = "hello   world  again".replaceAll("\\s+", " ");
        System.out.println(cleaned);
    }
}

replaceFirst

replaceFirst yalnızca ilk eşleşmeyi değiştirir ve sonraki eşleşmelere dokunmaz.

public class Main {
    public static void main(String[] args) {
        String s = "cat cat cat".replaceFirst("cat", "dog");
        System.out.println(s);
    }
}

Değiştirmelerde Grup Başvuruları

Değiştirme dizesinde $1, $2 ve benzerleri, ilgili gruplar tarafından yakalanan metni ekler. Böylece eşleşen içeriği yeniden sıralayabilir veya yeniden biçimlendirebilirsiniz.

public class Main {
    public static void main(String[] args) {
        String iso = "30/05/2026".replaceAll("(\\d{2})/(\\d{2})/(\\d{4})", "$3-$2-$1");
        System.out.println(iso);
    }
}

Adlandırılmış Grup Başvuruları

Değiştirmede adlandırılmış gruplara ${name} ile de başvurabilirsiniz.

public class Main {
    public static void main(String[] args) {
        String r = "alice@example.com"
            .replaceAll("(?<user>\\w+)@(?<host>[\\w.]+)", "${user} at ${host}");
        System.out.println(r);
    }
}

Dolar ve Ters Eğik Çizgiden Kaçış

$ ve \ değiştirmelerde özel anlam taşıdığı için, gerçek bir dolar işaretinden kaçmak amacıyla \$ kullanın. Matcher.quoteReplacement bu karakterler için sizin yerinize kaçış uygular.

import java.util.regex.Matcher;

public class Main {
    public static void main(String[] args) {
        String price = "100".replaceAll("\\d+", Matcher.quoteReplacement("$100"));
        System.out.println(price);
    }
}

replaceAll İşleviyle Hesaplanan Değiştirmeler

Java 9'dan beri Matcher.replaceAll bir işlev kabul edebilir; böylece her değiştirmeyi eşleşmeden yola çıkarak hesaplayabilirsiniz.

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class Main {
    public static void main(String[] args) {
        Matcher m = Pattern.compile("\\d+").matcher("a1 b2 c3");
        String out = m.replaceAll(mr -> String.valueOf(Integer.parseInt(mr.group()) * 10));
        System.out.println(out);
    }
}

Eşleşen Sözcükleri Büyük Harfe Dönüştürme

Değiştirme eşleşen metne bağlı olduğunda, örneğin her sözcüğü büyük harfe dönüştürürken, işlev biçimi özellikle kullanışlıdır.

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class Main {
    public static void main(String[] args) {
        Matcher m = Pattern.compile("\\b\\w").matcher("hello there world");
        String title = m.replaceAll(mr -> mr.group().toUpperCase());
        System.out.println(title);
    }
}

appendReplacement ve appendTail

Tam denetim için find ile döngü kurun ve çıktıyı önce appendReplacement, ardından appendTail aracılığıyla oluşturun. Bu, klasik düşük düzeyli tekniktir.

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class Main {
    public static void main(String[] args) {
        Matcher m = Pattern.compile("\\d+").matcher("a1b2");
        StringBuilder sb = new StringBuilder();
        while (m.find()) {
            m.appendReplacement(sb, "[" + m.group() + "]");
        }
        m.appendTail(sb);
        System.out.println(sb);
    }
}

Desendeki Geri Başvurular

Desendeki geri başvurular (\1), yinelenen metinle eşleşir; bu, değiştirme sırasında iki kez yazılmış sözcükleri birleştirmek için kullanışlıdır.

public class Main {
    public static void main(String[] args) {
        String fixed = "the the end end".replaceAll("\\b(\\w+) \\1\\b", "$1");
        System.out.println(fixed);
    }
}

İstenmeyen Karakterleri Kaldırma

Sık kullanılan bir yöntem, izin verilen kümenin dışındaki her şeyi boş dizeyle değiştirerek girdiyi temizlemektir.

public class Main {
    public static void main(String[] args) {
        String digits = "(555) 123-4567".replaceAll("[^0-9]", "");
        System.out.println(digits);
    }
}

Hızlı Kontrol

replaceAll için bir değiştirme dizesinde $2 ne anlama gelir?

Özet

Metni düzenli ifadeyle dönüştürdünüz:

  • replaceAll ve replaceFirst eşleşmeleri değiştirir; String kısayollar sunar.
  • $1 / ${name}, değiştirmelerde yakalanan grupları ekler; gerçek bir $ karakterinden \$ ile veya quoteReplacement aracılığıyla kaçış yapın.
  • replaceAll işlev biçimi, değiştirmeleri her eşleşmeden yola çıkarak hesaplar.
  • appendReplacement + appendTail, tüm manuel denetimi sağlar.

Sıkça Sorulan Sorular

“Düzenli İfadelerle Değiştirme” dersi ücretsiz mi?

Evet — “Düzenli İfadelerle Değiştirme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Java Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Java Academy kursu toplamda 4 dersten oluşur.

“Düzenli İfadelerle Değiştirme” dersinde ne öğreneceğim?

replaceAll ve geri başvurular Java Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Java Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Java Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“Düzenli İfadelerle Değiştirme” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Java Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Java Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Örüntüleri Derleme
  2. Bulma ve Eşleştirme
  3. Yakalama Grupları
  4. Düzenli İfadelerle Değiştirme
← Java Academy Sayfasına Dön