0Pricing
Go Academy · Leçon

Remplacement de texte

Utiliser les motifs ReplaceAll

Remplacement de texte est une leçon Go Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Go Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Go Academy comprend 4 leçons au total.

Remplacement fondé sur un motif

Les expressions régulières peuvent réécrire le texte, et pas seulement le rechercher. ReplaceAllString remplace chaque correspondance par une chaîne de remplacement.

package main

import (
    "fmt"
    "regexp"
)

func main() {
    re := regexp.MustCompile("[0-9]+")
    fmt.Println(re.ReplaceAllString("a1b2c3", "#"))
}

Remplacer des mots entiers

Un motif comme cat|dog vous permet de remplacer plusieurs possibilités en une seule passe.

package main

import (
    "fmt"
    "regexp"
)

func main() {
    re := regexp.MustCompile("cat|dog")
    fmt.Println(re.ReplaceAllString("my cat and dog", "pet"))
}

Réduire les espaces blancs

Nettoyage courant : remplacez les suites d'espaces blancs par une seule espace à l'aide de \s+.

package main

import (
    "fmt"
    "regexp"
)

func main() {
    re := regexp.MustCompile("\\s+")
    fmt.Println(re.ReplaceAllString("too   many    spaces", " "))
}

Faire référence aux groupes

Dans le remplacement, $1 insère le premier groupe de capture et $2 le deuxième. Cela permet de réorganiser les éléments correspondants.

package main

import (
    "fmt"
    "regexp"
)

func main() {
    re := regexp.MustCompile("(\\d+)-(\\d+)")
    fmt.Println(re.ReplaceAllString("12-34", "$2-$1"))
}

Références aux groupes nommés

Avec des groupes nommés, vous pouvez utiliser ${name} dans le remplacement pour plus de clarté.

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}"))
}

Accolades sans ambiguïté

Utilisez les accolades ${1} lorsqu'un texte suit une référence de groupe, afin que $1 ne soit pas confondu avec un nom plus long.

package main

import (
    "fmt"
    "regexp"
)

func main() {
    re := regexp.MustCompile("(\\d+)")
    fmt.Println(re.ReplaceAllString("7", "${1}px"))
}

Remplacement littéral

ReplaceAllLiteralString ignore les références $ et insère exactement le remplacement tel qu'il est écrit.

package main

import (
    "fmt"
    "regexp"
)

func main() {
    re := regexp.MustCompile("[0-9]+")
    fmt.Println(re.ReplaceAllLiteralString("a1", "$money"))
}

Remplacer avec une fonction

ReplaceAllStringFunc appelle votre fonction pour chaque correspondance et remplace celle-ci par la valeur renvoyée. Cela permet d'effectuer des remplacements calculés.

package main

import (
    "fmt"
    "regexp"
    "strings"
)

func main() {
    re := regexp.MustCompile("[a-z]+")
    out := re.ReplaceAllStringFunc("go is fun", strings.ToUpper)
    fmt.Println(out)
}

Remplacement calculé

Dans la fonction, vous pouvez transformer chaque correspondance comme vous le souhaitez ; ici, chaque suite de chiffres correspondante est doublée en l'entourant.

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)
}

Masquage des données sensibles

Une utilisation pratique consiste à masquer les nombres, comme les suites de chiffres d'un numéro de carte, avant la journalisation.

package main

import (
    "fmt"
    "regexp"
)

func main() {
    re := regexp.MustCompile("\\d{4}")
    fmt.Println(re.ReplaceAllString("card 1234 5678", "****"))
}

Travailler sur des octets

Il existe également des variantes travaillant sur des tranches d'octets, comme ReplaceAll ; elles reprennent les méthodes sur les chaînes pour les données binaires ou les données de tampon.

package main

import (
    "fmt"
    "regexp"
)

func main() {
    re := regexp.MustCompile("[0-9]+")
    out := re.ReplaceAll([]byte("a1b2"), []byte("#"))
    fmt.Println(string(out))
}

Vérification rapide

Comment insérez-vous le premier groupe capturé dans une chaîne de remplacement ?

Récapitulatif : remplacer du texte

Vous avez appris à réécrire du texte :

  • ReplaceAllString remplace les correspondances ; $1/${name} font référence aux groupes.
  • ReplaceAllLiteralString ignore l'expansion.
  • ReplaceAllStringFunc calcule chaque remplacement.
package main

import (
    "fmt"
    "regexp"
)

func main() {
    re := regexp.MustCompile("(\\w+)\\s(\\w+)")
    fmt.Println(re.ReplaceAllString("Ada Lovelace", "$2, $1"))
}

Questions Fréquemment Posées

La leçon « Remplacement de texte » est-elle gratuite ?

Oui — le texte complet de « Remplacement de texte » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Go Academy, passe à CoddyKit PRO. Le cours Go Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Remplacement de texte » ?

Utiliser les motifs ReplaceAll Tu pratiques Go Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Go Academy ?

Aucune expérience préalable n'est requise. Go Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « Remplacement de texte » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Go Academy ?

Oui. Chaque leçon Go Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Les bases de regexp
  2. Recherche et extraction
  3. Remplacement de texte
  4. Conseils de performance
← Retour à Go Academy