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:
ReplaceAllStringeşleşmeleri değiştirir;$1/${name}gruplara başvurur.ReplaceAllLiteralStringgenişletmeyi atlar.ReplaceAllStringFuncher 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
- regexp Temelleri
- Bulma ve Çıkarma
- Metni Değiştirme
- Performans İpuçları