Trouver des correspondances avec Regex dans Go
Lorsque vous travaillez avec Go, vous pouvez rencontrer le besoin de faire correspondre des modèles spécifiques dans des chaînes à l'aide d'expressions régulières. Voici comment y parvenir à l'aide du package regexp :
Question :
Comment puis-je trouver toutes les correspondances pour une expression régulière spécifiée dans une chaîne donnée et les renvoyer sous forme de tableau ?
Exemple :
Considérez la chaîne : "{ville}, {état} {zip}". L'objectif est de renvoyer un tableau contenant toutes les sous-chaînes entourées d'accolades.
Tentative initiale :
En utilisant le package regexp, vous avez peut-être essayé le code suivant :
r := regexp.MustCompile("/({[^}]*})/") matches := r.FindAllString("{city}, {state} {zip}", -1)
Cependant, ce code renvoie une tranche vide, indiquant qu'aucune correspondance n'a été trouvée. trouvé.
Solution :
Pour résoudre ce problème, envisagez les étapes suivantes :
Pour toutes les correspondances :
r := regexp.MustCompile(`{[^{}]*}`) matches := r.FindAllString("{city}, {state} {zip}", -1) fmt.Println(matches) // Prints: [{city}, {state}, {zip}]
Pour les pièces capturées uniquement :
r := regexp.MustCompile(`{([^{}]*)}`) matches := r.FindAllStringSubmatch("{city}, {state} {zip}", -1) for _, v := range matches { fmt.Println(v[1]) // Prints: city, state, zip }
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!