Maison > développement back-end > Golang > le corps du texte

Comment capturer plusieurs arguments dans Go à l'aide d'expressions régulières ?

Mary-Kate Olsen
Libérer: 2024-10-27 10:56:01
original
382 Les gens l'ont consulté

How to Capture Multiple Arguments in Go Using Regular Expressions?

Capturer plusieurs groupes dans Go : une étude de cas

Lors de l'analyse de chaînes contenant des mots majuscules suivis d'arguments facultatifs entre guillemets, en isolant des groupes individuels peut être difficile. Une approche courante consiste à utiliser des expressions régulières, comme illustré par l'extrait de code suivant :

<code class="go">re1, _ := regexp.Compile(`([A-Z]+)(?: "([^"]+)")*`)
results := re1.FindAllStringSubmatch(input, -1)</code>
Copier après la connexion

Cependant, des problèmes peuvent survenir lorsque plusieurs arguments sont présents, car seul le dernier argument est capturé. Pour résoudre ce problème, une expression régulière plus flexible est nécessaire.

Expression régulière améliorée

En assouplissant les contraintes de regroupement, nous pouvons capturer efficacement à la fois les commandes et les arguments :

re1, _ := regexp.Compile(`([A-Z]+)|(?: "([^"]+)")`)
Copier après la connexion

Dans cette expression régulière révisée :

  • Le premier groupe ([A-Z] ) correspond aux mots majuscules (commandes).
  • Le deuxième groupe (?: "( [^"] )") correspond aux arguments entre guillemets, permettant plusieurs occurrences.

Extraction et affichage

Une fois les groupes capturés, nous pouvons extraire et affichez la commande et les arguments séparément :

fmt.Println("Command:", results[0][1])
for _, arg := range results[1:] {
    fmt.Println("Arg:", arg[2])
}
Copier après la connexion

Cette approche permet une analyse efficace des chaînes avec des structures de commande bien définies.

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