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 (?P
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()) }
Sortie :
Matched Substrings: [2015 05 27] Group Names: [ Year Month Day ]
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!