Maison > développement back-end > Golang > Focus sur l'opération de remplacement dans le package regexp

Focus sur l'opération de remplacement dans le package regexp

PHPz
Libérer: 2023-04-05 09:25:27
original
743 Les gens l'ont consulté

Dans le langage Go, le package regexp prend en charge les expressions régulières. L'expression régulière est un outil permettant de décrire des modèles de chaînes en définissant une série de règles pour faire correspondre et manipuler les chaînes. Dans cet article, nous nous concentrerons sur l'opération de remplacement dans le package regexp.

L'opération de remplacement dans le package regexp utilise principalement les deux fonctions ReplaceAllString et ReplaceAllFunc. Ils peuvent tous remplacer la chaîne spécifiée et renvoyer la nouvelle chaîne après remplacement.

Voici la syntaxe de base de la fonction ReplaceAllString :

func ReplaceAllString(src, pattern, replace string) string
Copier après la connexion

Parmi eux, src représente la chaîne à remplacer, pattern est l'expression régulière pour la recherche et replace est la chaîne à remplacer. L'exemple est le suivant :

package main

import (
    "fmt"
    "regexp"
)

func main() {
    src := "Hello, world! Today is 2021-06-30."
    pattern := `\d{4}-\d{2}-\d{2}`
    replace := "tomorrow"
    
    newStr := regexp.MustCompile(pattern).ReplaceAllString(src, replace)
    fmt.Println(newStr)
}
Copier après la connexion

Le résultat en cours d'exécution est :

Hello, world! Today is tomorrow.
Copier après la connexion
Copier après la connexion

Dans l'exemple ci-dessus, nous avons utilisé d{4}-d{2}-d{2} comme expression régulière pour la recherche, qui représente une chaîne correspondant au format de date, tel que 2021-06-30. Appelez la fonction ReplaceAllString pour remplacer la partie qui correspond à l'expression régulière par « demain ».

En plus de la fonction ReplaceAllString, il existe également une fonction plus puissante ReplaceAllFunc, qui peut utiliser une fonction comme valeur de remplacement. Cette fonction peut générer une chaîne de remplacement basée sur le contenu correspondant. Voici la syntaxe de base de la fonction ReplaceAllFunc :

func ReplaceAllFunc(src string, re *Regexp, repl func([]byte) []byte) string
Copier après la connexion

Parmi eux, src représente la chaîne à remplacer, re est une expression régulière compilée et repl est une fonction utilisée pour générer la chaîne de remplacement. Cette fonction reçoit un paramètre de type []byte, qui représente le contenu correspondant, et renvoie un résultat de type []byte, qui représente le contenu remplacé.

Ce qui suit est un exemple de code qui montre la fonction d'utilisation de ReplaceAllFunc pour implémenter le remplacement :

package main

import (
    "fmt"
    "regexp"
)

func main() {
    src := "Hello, world! Today is 2021-06-30."
    pattern := `\d{4}-\d{2}-\d{2}`
    
    newStr := regexp.MustCompile(pattern).ReplaceAllFunc([]byte(src), func(matched []byte) []byte {
        // 匹配到的内容为matched
        return []byte("tomorrow")
    })
    
    fmt.Println(string(newStr))
}
Copier après la connexion

Le résultat de l'exécution est également :

Hello, world! Today is tomorrow.
Copier après la connexion
Copier après la connexion

Dans le code ci-dessus, nous transmettons le contenu correspondant en tant que paramètre de fonction à la fonction repl et valeur de retour comme résultat de remplacement. Ici, notre fonction renvoie directement la chaîne fixe "demain".

Lors de l'opération de remplacement, vous avez parfois besoin de certaines fonctions avancées, telles que conserver la casse d'origine lors du remplacement, extraire la sous-chaîne contenue dans le résultat correspondant lors du remplacement, etc. Le package regexp fournit des fonctions et des structures associées pour implémenter de manière flexible différentes exigences de remplacement.

En bref, le package regexp nous offre un puissant support d'expressions régulières, parmi lesquelles les opérations de remplacement sont l'une des fonctions les plus couramment utilisées. Grâce à l'introduction de cet article, je pense que les lecteurs maîtrisent les méthodes de base des opérations de remplacement dans le package regexp et peuvent les utiliser de manière flexible en fonction des besoins réels.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal