0Pricing
Go Academy · Ders

Metni Değiştirme

ReplaceAll örüntüleri

Metni Değiştirme, CoddyKit'te ücretsiz bir Go Academy dersidir. Bu, 4 dersinin 3. 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, Go Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Go Academy kursu toplamda 4 dersten oluşur.

Desen Tabanlı Değiştirme

Düzenli ifadeler metni yalnızca bulmakla kalmaz, yeniden yazabilir. ReplaceAllString, her eşleşmeyi bir değiştirme dizesiyle değiştirir.

package main

import (
    "fmt"
    "regexp"
)

func main() {
    re := regexp.MustCompile("[0-9]+")
    fmt.Println(re.ReplaceAllString("a1b2c3", "#"))
}

Tüm Sözcükleri Değiştirme

cat|dog gibi bir desen, tek geçişte birden çok alternatifi değiştirmenizi sağlar.

package main

import (
    "fmt"
    "regexp"
)

func main() {
    re := regexp.MustCompile("cat|dog")
    fmt.Println(re.ReplaceAllString("my cat and dog", "pet"))
}

Boşlukları Birleştirme

Yaygın bir temizleme işlemi, \s+ kullanarak art arda gelen boşlukları tek bir boşlukla değiştirmektir.

package main

import (
    "fmt"
    "regexp"
)

func main() {
    re := regexp.MustCompile("\\s+")
    fmt.Println(re.ReplaceAllString("too   many    spaces", " "))
}

Gruplara Başvurma

Değiştirme dizesinde $1 ilk yakalama grubunu, $2 ise ikinci grubu ekler. Bu işlem, eşleşen parçaları yeniden düzenler.

package main

import (
    "fmt"
    "regexp"
)

func main() {
    re := regexp.MustCompile("(\\d+)-(\\d+)")
    fmt.Println(re.ReplaceAllString("12-34", "$2-$1"))
}

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

Adlandırılmış gruplarla, açıklık sağlamak için değiştirme metninde ${name} kullanabilirsiniz.

package main

import (
    "fmt"
    "regexp"
)

func main() {
    re := regexp.MustCompile("(?P<y>\\d{4})-(?P<m>\\d{2})")
    fmt.Println(re.ReplaceAllString("2026-05", "${m}/${y}"))
}

Güvenli Süslü Parantezler

Bir grup başvurusunun ardından metin geliyorsa ${1} süslü parantezlerini kullanın; böylece $1 daha uzun bir adla karıştırılmaz.

package main

import (
    "fmt"
    "regexp"
)

func main() {
    re := regexp.MustCompile("(\\d+)")
    fmt.Println(re.ReplaceAllString("7", "${1}px"))
}

Değişmez Metinle Değiştirme

ReplaceAllLiteralString, $ başvurularını yok sayar ve değiştirme metnini yazıldığı hâliyle ekler.

package main

import (
    "fmt"
    "regexp"
)

func main() {
    re := regexp.MustCompile("[0-9]+")
    fmt.Println(re.ReplaceAllLiteralString("a1", "$money"))
}

Bir İşlevle Değiştirme

ReplaceAllStringFunc, her eşleşme için işlevinizi çağırır ve işlevin döndürdüğü değeri yerleştirir. Bu, hesaplanan değiştirme metinleri oluşturmanızı sağlar.

package main

import (
    "fmt"
    "regexp"
    "strings"
)

func main() {
    re := regexp.MustCompile("[a-z]+")
    out := re.ReplaceAllStringFunc("go is fun", strings.ToUpper)
    fmt.Println(out)
}

Hesaplanan Değiştirme

İşlevin içinde her eşleşmeyi istediğiniz gibi dönüştürebilirsiniz; burada eşleşen her rakam dizisi onu çevreleyerek iki katına çıkarılıyor.

package main

import (
    "fmt"
    "regexp"
)

func main() {
    re := regexp.MustCompile("[0-9]+")
    out := re.ReplaceAllStringFunc("id5 and id9", func(m string) string {
        return "<" + m + ">"
    })
    fmt.Println(out)
}

Hassas Verileri Maskeleme

Pratik bir kullanım alanı, günlükleme yapmadan önce sayıları (kart numarası benzeri rakam dizilerini) gizlemektir.

package main

import (
    "fmt"
    "regexp"
)

func main() {
    re := regexp.MustCompile("\\d{4}")
    fmt.Println(re.ReplaceAllString("card 1234 5678", "****"))
}

Baytlarla Çalışma

ReplaceAll gibi bayt dilimi çeşitleri de vardır; bunlar ikili veriler veya arabellek verileri için dize yöntemlerini taklit eder.

package main

import (
    "fmt"
    "regexp"
)

func main() {
    re := regexp.MustCompile("[0-9]+")
    out := re.ReplaceAll([]byte("a1b2"), []byte("#"))
    fmt.Println(string(out))
}

Kısa Kontrol

Bir değiştirme dizesine ilk yakalama grubunu nasıl eklersiniz?

Özet: Metin Değiştirme

Metni yeniden yazmayı öğrendiniz:

  • ReplaceAllString eşleşmeleri değiştirir; $1/${name} gruplara başvurur.
  • ReplaceAllLiteralString genişletmeyi atlar.
  • ReplaceAllStringFunc her değiştirme metnini hesaplar.
package main

import (
    "fmt"
    "regexp"
)

func main() {
    re := regexp.MustCompile("(\\w+)\\s(\\w+)")
    fmt.Println(re.ReplaceAllString("Ada Lovelace", "$2, $1"))
}

Sıkça Sorulan Sorular

“Metni Değiştirme” dersi ücretsiz mi?

Evet — “Metni 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 Go Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Go Academy kursu toplamda 4 dersten oluşur.

“Metni Değiştirme” dersinde ne öğreneceğim?

ReplaceAll örüntüleri Go 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.

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

Önceden deneyim gerekmez. CoddyKit'te Go 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 3. dersidir.

“Metni 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 Go Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Go 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. regexp Temelleri
  2. Bulma ve Çıkarma
  3. Metni Değiştirme
  4. Performans İpuçları
← Go Academy Sayfasına Dön