Maison > développement back-end > Golang > Comment extraire toutes les sous-chaînes entourées d'accolades à l'aide de l'expression régulière de Go ?

Comment extraire toutes les sous-chaînes entourées d'accolades à l'aide de l'expression régulière de Go ?

Susan Sarandon
Libérer: 2024-12-25 09:56:31
original
876 Les gens l'ont consulté

How to Extract All Substrings Enclosed in Curly Braces Using Go's Regex?

Recherche de toutes les correspondances de chaînes à l'aide de Regex dans Go

Lorsque vous travaillez avec des chaînes dans Go, il est souvent nécessaire de trouver des modèles ou des sous-chaînes spécifiques. Les expressions régulières offrent un moyen puissant de faire correspondre et de manipuler du texte. Une tâche courante consiste à trouver toutes les correspondances d'un modèle particulier et à les stocker dans une tranche ou un tableau.

Énoncé du problème :

Étant donné une chaîne contenant des accolades entourant des sous-chaînes , le but est d'extraire toutes les sous-chaînes entre les accolades et de les renvoyer sous forme de tableau. Par exemple, étant donné la chaîne :

{city}, {state} {zip}
Copier après la connexion

Nous devons renvoyer un tableau contenant :

  • {city}
  • {state}
  • {zip}

Solution :

À pour y parvenir, nous pouvons utiliser le package regexp de Go. Cependant, il y a quelques points clés à noter lors de la définition de l'expression régulière :

  • Évitez les délimiteurs Regex : Dans Go, les expressions régulières ne sont pas entourées de barres obliques (/) par par défaut.
  • Utiliser des littéraux de chaîne bruts : Lors de la définition d'un modèle d'expression régulière complexe, il est conseillé d'utiliser des littéraux bruts des chaînes littérales (préfixées par des guillemets ``) pour échapper aux caractères spéciaux avec une seule barre oblique inverse.
  • Capture de groupes : Les groupes de capture peuvent être utilisés pour extraire des parties spécifiques d'une correspondance. Cependant, pour ce problème, nous pouvons simplifier les expressions régulières et éviter de les utiliser.

Voici le code Go mis à jour :

package main

import (
    "fmt"
    "regexp"
)

func main() {
    str := "{city}, {state} {zip}"

    // Define the regular expression pattern
    r := regexp.MustCompile(`{[^{}]*}`)

    // Find all matches
    matches := r.FindAllString(str, -1)

    // Print the matches
    for _, match := range matches {
        fmt.Println(match)
    }
}
Copier après la connexion

Répartition des expressions régulières :

  • {[^{}]*} : correspond à n'importe quelle sous-chaîne entourée de curl accolades.

Sortie :

  • {city}
    {state}
    Copier après la connexion

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal