0Pricing
Go Academy · Ders

regexp Temelleri

Örüntüleri derleyin ve eşleştirin

regexp Temelleri, CoddyKit'te ücretsiz bir Go Academy dersidir. Bu, 4 dersinin 1. 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.

Düzenli İfade Nedir?

Düzenli ifade (regexp), bir dize kümesini tanımlayan bir desendir. Go, bunları regexp paketi aracılığıyla sunar.

Metni doğrulamak ve aramak için idealdirler.

package main

import (
    "fmt"
    "regexp"
)

func main() {
    matched, _ := regexp.MatchString("go+", "gooo")
    fmt.Println(matched)
}

MatchString ile Hızlı Eşleştirme

regexp.MatchString(pattern, s), desenin s içinde herhangi bir yerde bulunup bulunmadığını bildirir. Bir doğru/yanlış değeri ve bir hata döndürür.

package main

import (
    "fmt"
    "regexp"
)

func main() {
    ok, _ := regexp.MatchString("cat", "the cat sat")
    fmt.Println(ok)
}

Bir Deseni Derleme

Tekrar tekrar kullanacaksanız regexp.Compile ile bir kez derleyin. Bu işlem yeniden kullanılabilir bir *regexp.Regexp ve geçersiz desenler için bir hata döndürür.

package main

import (
    "fmt"
    "regexp"
)

func main() {
    re, err := regexp.Compile("[0-9]+")
    fmt.Println(re.MatchString("abc123"), err)
}

Sabitler için MustCompile

regexp.MustCompile, desen geçersizse panik oluşturur. Bunu, derleme zamanında bilinen sabit desenler için, genellikle paket düzeyindeki değişkenlerde kullanın.

package main

import (
    "fmt"
    "regexp"
)

var digits = regexp.MustCompile("[0-9]+")

func main() {
    fmt.Println(digits.MatchString("order 42"))
}

Karakter Sınıfları

Köşeli parantezler izin verilen karakterlerden oluşan bir küme tanımlar. [aeiou] herhangi bir sesli harfle eşleşir; [a-z] gibi aralıklar bir karakter aralığıyla eşleşir.

package main

import (
    "fmt"
    "regexp"
)

func main() {
    re := regexp.MustCompile("[a-z]+")
    fmt.Println(re.MatchString("Hello"))
}

Önceden Tanımlanmış Sınıflar

Kısayollar, yaygın kümelerin kullanımını kolaylaştırır: \d bir digits, \w bir sözcük karakteri, \s ise boşluktur. Go dizelerinde ters eğik çizgiyi kaçış karakteri olarak yazın.

package main

import (
    "fmt"
    "regexp"
)

func main() {
    re := regexp.MustCompile("\\d+")
    fmt.Println(re.MatchString("abc 99"))
}

Nicelik Belirteçleri

Nicelik belirteçleri kaç kez eşleşileceğini belirtir:

  • * sıfır veya daha fazla,
  • + bir veya daha fazla,
  • ? sıfır veya bir,
  • {2,4} bir aralık.
package main

import (
    "fmt"
    "regexp"
)

func main() {
    re := regexp.MustCompile("a{2,3}")
    fmt.Println(re.MatchString("aaa"))
    fmt.Println(re.MatchString("a"))
}

Çapalar

Çapalar bir eşleşmeyi sabitler: ^ metnin başlangıcını, $ ise sonunu belirtir. Dizenin tamamının eşleşmesini zorunlu kılmak için ikisini de kullanın.

package main

import (
    "fmt"
    "regexp"
)

func main() {
    re := regexp.MustCompile("^go$")
    fmt.Println(re.MatchString("go"))
    fmt.Println(re.MatchString("going"))
}

Alternatifler ve Gruplar

Dikey çubuk |, OR anlamına gelir; parantezler ise parçaları birlikte gruplandırır. (cat|dog)s?, cat, cats, dog veya dogs ile eşleşir.

package main

import (
    "fmt"
    "regexp"
)

func main() {
    re := regexp.MustCompile("(cat|dog)s?")
    fmt.Println(re.MatchString("dogs"))
}

Bir Biçimi Doğrulama

Çapalanmış desenler doğrulayıcılar oluşturmanızı sağlar. Burada yalnızca digits içeren, tam olarak beş digits uzunluğunda, ZIP tarzı basit bir kodu kontrol ediyoruz.

package main

import (
    "fmt"
    "regexp"
)

func main() {
    re := regexp.MustCompile("^\\d{5}$")
    fmt.Println(re.MatchString("12345"))
    fmt.Println(re.MatchString("123"))
}

Baytlar Üzerinde Eşleştirme

Yöntemlerin dize ve bayt dilimi biçimleri bulunur. Match, []byte üzerinde çalışır ve MatchString ile aynı işi yapar.

package main

import (
    "fmt"
    "regexp"
)

func main() {
    re := regexp.MustCompile("[0-9]+")
    fmt.Println(re.Match([]byte("id7")))
}

Hızlı Kontrol

Geçersiz bir desende panik oluşturan ve sabit desenler için en uygun olan işlev hangisidir?

Özet: regexp Temelleri

Temel bilgileri öğrendiniz:

  • MatchString ile hızlıca eşleştirin; Compile veya MustCompile ile derleyin.
  • Desenleri sınıflardan, nicelik belirteçlerinden, çapalardan ve gruplardan oluşturun.
  • Dizenin tamamını doğrulamak için ^ ve $ ile sınırlayın.
package main

import (
    "fmt"
    "regexp"
)

func main() {
    re := regexp.MustCompile("^[a-z]+@[a-z]+$")
    fmt.Println(re.MatchString("hi@host"))
}

Sıkça Sorulan Sorular

“regexp Temelleri” dersi ücretsiz mi?

Evet — “regexp Temelleri” 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.

“regexp Temelleri” dersinde ne öğreneceğim?

Örüntüleri derleyin ve eşleştirin 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 1. dersidir.

“regexp Temelleri” 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