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
MatchStringab und kompilieren Sie mitCompileoderMustCompile. - 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
- regexp-Grundlagen
- Finden und Extrahieren
- Text ersetzen
- Performance-Tipps