Text ersetzen
ReplaceAll-Muster verwenden
Text ersetzen ist eine kostenlose Go Academy-Lektion auf CoddyKit. Dies ist Lektion 3 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.
Musterbasierte Ersetzung
Reguläre Ausdrücke können Text nicht nur finden, sondern auch umschreiben. ReplaceAllString ersetzt jeden Treffer durch eine Ersetzungszeichenfolge.
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile("[0-9]+")
fmt.Println(re.ReplaceAllString("a1b2c3", "#"))
}Ganze Wörter ersetzen
Mit einem Muster wie cat|dog können Sie mehrere Alternativen in einem Durchlauf ersetzen.
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile("cat|dog")
fmt.Println(re.ReplaceAllString("my cat and dog", "pet"))
}Leerraum zusammenfassen
Eine häufige Bereinigung besteht darin, Folgen von Leerraum mit \s+ durch ein einzelnes Leerzeichen zu ersetzen.
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile("\\s+")
fmt.Println(re.ReplaceAllString("too many spaces", " "))
}Auf Gruppen verweisen
In der Ersetzung fügt $1 die erste Capture-Gruppe und $2 die zweite ein. Dadurch können Sie übereinstimmende Teile neu anordnen.
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile("(\\d+)-(\\d+)")
fmt.Println(re.ReplaceAllString("12-34", "$2-$1"))
}Benannte Gruppenreferenzen
Mit benannten Gruppen können Sie zur besseren Verständlichkeit ${name} in der Ersetzung verwenden.
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}"))
}Sichere geschweifte Klammern
Verwenden Sie die geschweiften Klammern ${1}, wenn nach einer Gruppenreferenz Text folgt, damit $1 nicht mit einem längeren Namen verwechselt wird.
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile("(\\d+)")
fmt.Println(re.ReplaceAllString("7", "${1}px"))
}Wörtliche Ersetzung
ReplaceAllLiteralString ignoriert $-Referenzen und fügt die Ersetzung genau so ein, wie sie angegeben wurde.
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile("[0-9]+")
fmt.Println(re.ReplaceAllLiteralString("a1", "$money"))
}Mit einer Funktion ersetzen
ReplaceAllStringFunc ruft Ihre Funktion für jeden Treffer auf und ersetzt ihn durch den zurückgegebenen Wert. Dadurch werden berechnete Ersetzungen möglich.
package main
import (
"fmt"
"regexp"
"strings"
)
func main() {
re := regexp.MustCompile("[a-z]+")
out := re.ReplaceAllStringFunc("go is fun", strings.ToUpper)
fmt.Println(out)
}Berechnete Ersetzung
In der Funktion können Sie jeden Treffer beliebig umwandeln. Hier wird jede gefundene Ziffernfolge verdoppelt, indem sie umschlossen wird.
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)
}Sensible Daten maskieren
Eine praktische Anwendung: Schwärzen Sie Zahlen, etwa zusammenhängende Ziffernfolgen im Stil von Kartennummern, bevor Sie sie protokollieren.
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile("\\d{4}")
fmt.Println(re.ReplaceAllString("card 1234 5678", "****"))
}Mit Bytes arbeiten
Es gibt auch Varianten für Byte-Slices wie ReplaceAll. Sie entsprechen den String-Methoden und eignen sich für Binär- oder Pufferdaten.
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile("[0-9]+")
out := re.ReplaceAll([]byte("a1b2"), []byte("#"))
fmt.Println(string(out))
}Kurzer Test
Wie fügen Sie die erste Capture-Gruppe in einen Ersetzungsstring ein?
Zusammenfassung: Text ersetzen
Sie haben gelernt, Text umzuschreiben:
ReplaceAllStringersetzt Treffer; mit$1/${name}verweisen Sie auf Gruppen.ReplaceAllLiteralStringüberspringt die Auflösung von Referenzen.ReplaceAllStringFuncberechnet jede Ersetzung.
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile("(\\w+)\\s(\\w+)")
fmt.Println(re.ReplaceAllString("Ada Lovelace", "$2, $1"))
}Häufig gestellte Fragen
Ist die Lektion „Text ersetzen“ kostenlos?
Ja — der vollständige Text von „Text ersetzen“ 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 „Text ersetzen“?
ReplaceAll-Muster verwenden 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 3 von 4.
Wie lange dauert die Lektion „Text ersetzen“?
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.