Maison > développement back-end > Golang > Comment puis-je utiliser la capture de groupes dans les expressions régulières Go ?

Comment puis-je utiliser la capture de groupes dans les expressions régulières Go ?

Mary-Kate Olsen
Libérer: 2024-12-26 12:37:09
original
855 Les gens l'ont consulté

How Can I Use Capturing Groups in Go Regular Expressions?

Capturer des groupes dans les expressions régulières Go

Lors du portage du code de Ruby vers Go, les développeurs rencontrent souvent des problèmes de compatibilité avec les expressions régulières. Ruby prend en charge la capture de groupes dans les expressions régulières, une fonctionnalité non disponible nativement dans la bibliothèque RE2 de Go.

Réécriture des expressions pour Go

Pour émuler la fonctionnalité de capture de groupe, les étapes suivantes peuvent être pris :

1. Utiliser des groupes de capture nommés :
Au lieu d'utiliser des crochets angulaires, ajoutez « P » entre la parenthèse ouvrante et le nom du groupe, par exemple (?Pd{4}) pour le groupe d'années.

2. Noms des groupes de références croisées :
Utilisez la fonction regexp.SubexpNames() pour obtenir une liste des noms de groupes de capture.

3. Accédez aux données capturées :
Utilisez le nom de groupe approprié comme argument pour des fonctions telles que FindStringSubmatch pour récupérer les valeurs capturées.

Exemple :

package main

import (
    "fmt"
    "regexp"
)

func main() {
    r := regexp.MustCompile(`(?P<Year>\d{4})-(?P<Month>\d{2})-(?P<Day>\d{2})`)
    s := `2015-05-27`
    fmt.Printf("Matched Substrings: %#v\n", r.FindStringSubmatch(s))
    fmt.Printf("Group Names: %#v\n", r.SubexpNames())
}
Copier après la connexion

Sortie :

Matched Substrings: [2015 05 27]
Group Names: [ Year Month Day ]
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