Lors de la transition du code de Ruby vers Go, la compatibilité des expressions régulières peut être un défi. Ruby utilise PCRE, tandis que Go utilise RE2 de Google, ce qui oblige les développeurs à adapter leurs expressions.
Plus précisément, capturer la fonctionnalité de groupe, qui permet d'extraire des données spécifiques à partir de modèles correspondants, présente un défi. Pour répliquer cette fonctionnalité dans Go, les étapes suivantes peuvent être suivies :
Par exemple, pour extraire l'année d'une chaîne de date à l'aide de l'expression régulière (?P
package main import ( "fmt" "regexp" ) func main() { r := regexp.MustCompile(`(?P<Year>\d{4})-(?P<Month>\d{2})-(?P<Day>\d{2})`) fmt.Printf("%#v\n", r.FindStringSubmatch(`2015-05-27`)) fmt.Printf("%#v\n", r.SubexpNames()) }
Ce code afficherait :
[]string{"2015", "05", "27"} []string{""}
La première ligne affiche les valeurs capturées dans l'ordre, tandis que la deuxième ligne affiche les noms des groupes de capture. En utilisant ces techniques, vous pouvez obtenir une fonctionnalité de groupe de capture similaire dans Go comme dans Ruby.
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!