0Pricing
Go Academy · Lektion

regexp-Grundlagen

Muster kompilieren und abgleichen

regexp-Grundlagen ist eine kostenlose Go Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Go Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Go Academy-Kurs umfasst insgesamt 4 Lektionen.

Was ist ein regulärer Ausdruck?

Ein regulärer Ausdruck (Regexp) ist ein Muster, das eine Menge von Zeichenfolgen beschreibt. Go stellt reguläre Ausdrücke über das Paket regexp bereit.

Sie eignen sich ideal zum Validieren und Durchsuchen von Texten.

package main

import (
    "fmt"
    "regexp"
)

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

Schnell abgleichen mit MatchString

regexp.MatchString(pattern, s) gibt an, ob das Muster irgendwo in s vorkommt. Die Funktion gibt einen booleschen Wert und einen Fehler zurück.

package main

import (
    "fmt"
    "regexp"
)

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

Ein Muster kompilieren

Kompilieren Sie ein Muster für die wiederholte Verwendung einmal mit regexp.Compile. Die Funktion gibt ein wiederverwendbares *regexp.Regexp und bei ungültigen Mustern einen Fehler zurück.

package main

import (
    "fmt"
    "regexp"
)

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

MustCompile für Konstanten

regexp.MustCompile löst eine Panic aus, wenn das Muster ungültig ist. Verwenden Sie die Funktion für feste Muster, die zur Compile-Zeit bekannt sind, typischerweise in Variablen auf Paketebene.

package main

import (
    "fmt"
    "regexp"
)

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

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

Zeichenklassen

Eckige Klammern definieren eine Menge zulässiger Zeichen. [aeiou] findet jeden Vokal; Bereiche wie [a-z] finden eine zusammenhängende Zeichenfolge.

package main

import (
    "fmt"
    "regexp"
)

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

Vordefinierte Klassen

Abkürzungen erleichtern die Verwendung häufig benötigter Mengen: \d steht für eine Ziffer, \w für ein Wortzeichen und \s für Leerraum. In Go-Zeichenfolgen müssen Sie den Backslash maskieren.

package main

import (
    "fmt"
    "regexp"
)

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

Quantifizierer

Quantifizierer geben an, wie oft etwas vorkommt:

  • * null Mal oder öfter,
  • + ein Mal oder öfter,
  • ? null Mal oder ein Mal,
  • {2,4} ein Bereich.
package main

import (
    "fmt"
    "regexp"
)

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

Anker

Anker begrenzen einen Treffer: ^ steht für den Anfang des Textes und $ für dessen Ende. Verwenden Sie beide, wenn die gesamte Zeichenfolge übereinstimmen muss.

package main

import (
    "fmt"
    "regexp"
)

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

Alternativen und Gruppen

Der senkrechte Strich | steht für ODER, und Klammern gruppieren Teile. (cat|dog)s? findet cat, cats, dog oder dogs.

package main

import (
    "fmt"
    "regexp"
)

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

Ein Format validieren

Muster mit Ankern eignen sich für Validatoren. Hier prüfen wir einen einfachen ZIP-ähnlichen Code, der ausschließlich aus genau fünf Ziffern besteht.

package main

import (
    "fmt"
    "regexp"
)

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

Auf Bytes abgleichen

Methoden gibt es sowohl für Zeichenfolgen als auch für Byte-Slices. Match arbeitet mit einem []byte und entspricht damit MatchString.

package main

import (
    "fmt"
    "regexp"
)

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

Kurze Überprüfung

Welche Funktion löst bei einem ungültigen Muster eine Panic aus und eignet sich am besten für feste Muster?

Zusammenfassung: regexp-Grundlagen

Sie haben die Grundlagen kennengelernt:

  • Gleichen Sie schnell mit MatchString ab und kompilieren Sie mit Compile oder MustCompile.
  • Erstellen Sie Muster aus Klassen, Quantifizierern, Ankern und Gruppen.
  • Verwenden Sie ^ und $ als Anker, um die gesamte Zeichenfolge zu validieren.
package main

import (
    "fmt"
    "regexp"
)

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

Häufig gestellte Fragen

Ist die Lektion „regexp-Grundlagen“ kostenlos?

Ja — der vollständige Text von „regexp-Grundlagen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Go Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Go Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „regexp-Grundlagen“?

Muster kompilieren und abgleichen Du übst Go Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Go Academy zu starten?

Keine Vorkenntnisse erforderlich. Go Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „regexp-Grundlagen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Go Academy-Lektion Code schreiben und ausführen?

Ja. Jede Go Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. regexp-Grundlagen
  2. Finden und Extrahieren
  3. Text ersetzen
  4. Performance-Tipps
← Zurück zu Go Academy