Maison >développement back-end >Golang >correspondance et remplacement de Golang

correspondance et remplacement de Golang

WBOY
WBOYoriginal
2023-05-10 12:12:061335parcourir

Golang est un langage de programmation fortement typé et compilé statiquement. Il possède des fonctionnalités de programmation fonctionnelles au niveau du langage et un style de codage concis et efficace. Il devient rapidement le nouveau favori dans le monde de la programmation. Dans Golang, il existe de nombreuses fonctions pour les chaînes, y compris les fonctions liées à la correspondance et au remplacement.

Cet article présentera les fonctions de correspondance et de remplacement couramment utilisées dans Golang à travers des exemples, y compris des expressions rationnelles et des chaînes pour réaliser la correspondance et le remplacement de chaînes, pour aider les lecteurs à comprendre pleinement l'utilisation de base et la portée de l'application de ces fonctions.

1. Correspondance d'expressions régulières

L'expression régulière est une règle grammaticale qui décrit les modèles de caractères. Ils sont généralement une combinaison de différents caractères et peuvent être utilisés pour diverses opérations telles que la recherche de texte ou le remplacement de texte. Dans Golang, le package regexp fournit des opérations de base pour les expressions régulières, notamment :

  • Compiler les expressions régulières : Compile
  • Effectuer la correspondance d'expressions régulières : MatchString, Match
  • Rechercher et renvoyer une collection de chaînes correspondante : FindString, FindAllString

Le Voici un exemple simple montrant comment utiliser une expression rationnelle pour faire correspondre et remplacer :

package main

import (
    "fmt"
    "regexp"
)

func main() {
    // 定义正则表达式
    r, _ := regexp.Compile("(?i)go")
    
    // 匹配并替换字符串
    result := r.ReplaceAllString("I love Go Programming Language", "Golang")
    fmt.Println(result)
}

Dans le programme ci-dessus, nous utilisons la première ligne de code pour définir une expression régulière, ce qui signifie faire correspondre toutes les chaînes 'go', insensible à la casse. Deuxièmement, nous appelons la fonction ReplaceAllString du package regexp pour remplacer « go » dans la chaîne par « Golang ».

Cet exemple montre l'une des méthodes les plus élémentaires de correspondance et de remplacement à l'aide d'expressions régulières, et montre également comment ignorer l'impact de la casse des caractères dans une chaîne.

Si vous devez faire correspondre toutes les chaînes qui répondent aux exigences dans une chaîne et renvoyer leur collection, vous pouvez utiliser la méthode FindAllString. Le code suivant montre comment utiliser des expressions régulières pour faire correspondre toutes les adresses e-mail :

package main

import (
    "fmt"
    "regexp"
)

func main() {
    // 定义正则表达式
    r, _ := regexp.Compile("[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}")
    
    // 查找匹配的字符串并返回所有匹配结果
    matches := r.FindAllString("abc@def.com, ghi@jkl.edu, hello.world@mno.org", -1)
    
    // 打印所有匹配结果
    for _, match := range matches {
        fmt.Println(match)
    }
}

Dans cet exemple, nous utilisons l'expression régulière pour faire correspondre les adresses e-mail, puis appelons la méthode FindAllString pour rechercher et renvoyer tous les résultats correspondants qui répondent aux exigences , et enfin afficher ces résultats correspondants.

2. Correspondance et remplacement de chaînes

Le package de chaînes dans Golang fournit également certaines fonctions pour la correspondance et le remplacement de chaînes, notamment :

  • Si la sous-chaîne correspondante est dans la chaîne spécifiée : Contient
  • jugement Si deux chaînes sont égales : Égal
  • Faire correspondre la position de départ de la sous-chaîne spécifiée : Index
  • Séparer par chaîne : Diviser
  • Remplacer une certaine sous-chaîne par une autre chaîne : Remplacer

L'exemple suivant utilise la fonction Remplacer À titre d'exemple, il montre comment utiliser le package de chaînes pour faire correspondre et remplacer les chaînes :

package main

import (
    "fmt"
    "strings"
)

func main() {
    // 定义需要进行替换的字符串
    str := "I love Goo Programming Language"
    
    // 将字符串中的"oo"替换为"Golang"
    newStr := strings.Replace(str, "oo", "Golang", -1)
    
    // 输出替换结果
    fmt.Println(newStr)
}

Avec le code ci-dessus, nous remplaçons 'oo' dans la chaîne par 'Golang' et affichons le résultat du remplacement dans la console.

En plus de la fonction Remplacer, d'autres, notamment Contains, Equal, Index, Split, etc., sont très couramment utilisées. Après avoir regardé ces exemples, les lecteurs peuvent les utiliser selon leurs propres besoins.

3. Résumé

Dans cet article, nous expliquons aux lecteurs les fonctions de correspondance et de remplacement couramment utilisées dans Golang, y compris la correspondance et le remplacement basés sur des expressions régulières, et la correspondance et le remplacement basés sur le package de chaînes. Ces fonctions aident les développeurs à effectuer efficacement des opérations sur les chaînes et à atteindre l'objectif prévu du programme.

Cependant, il convient de noter que les expressions régulières sont un outil très puissant et imposent également des exigences élevées au niveau technique des développeurs. Lorsque nous utilisons des expressions régulières, nous devons choisir une expression régulière simple, facile à comprendre, raisonnable et efficace en fonction de la situation commerciale spécifique, et essayer d'éviter d'utiliser des expressions régulières lourdes et trop complexes.

De plus, lors de l'utilisation de fonctions de correspondance et de remplacement de chaînes, nous devons comprendre les paramètres communs, les valeurs de retour, etc. de la fonction, et en même temps, nous devons prêter attention aux détails tels que l'ordre et le type de paramètres. Ces problèmes détaillés peuvent facilement conduire à des erreurs ou à des exceptions dans le programme. Par conséquent, nous devons étudier et comprendre attentivement ces fonctions liées aux opérations de chaîne afin de mieux les utiliser pour écrire des programmes Golang de haute qualité.

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!

Déclaration:
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
Article précédent:golang majuscule en minusculeArticle suivant:golang majuscule en minuscule