Comment analyser la date JSON à l'aide d'expressions régulières ? Utilisez l'expression régulière "^(d{4})-(d{2})-(d{2})T(d{2}):(d{2}):(d{2})(.d+ )?Z$" correspond aux dates JSON au format "AAAA-MM-JJTHH:MM:SS.mmmZ". Analysez la date via la fonction regexp.MatchString et imprimez "Date analysée avec succès" une fois analysée avec succès.
Comment utiliser des expressions régulières pour analyser des dates JSON dans Go
Go fournit une puissante bibliothèque d'expressions régulières qui peut être utilisée pour analyser et traiter du texte complexe, y compris des dates JSON. Cet article vous guidera étape par étape dans l'analyse des dates JSON avec des expressions régulières et vous fournira un cas pratique.
Syntaxe de l'expression régulière
L'expression régulière suivante peut être utilisée pour faire correspondre les dates JSON :
/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(\.\d+)?Z$/
Cette expression peut correspondre aux dates au format "AAAA-MM-JJTHH:MM:SS.mmmZ" où :
Code Go
Le code Go suivant montre comment utiliser des expressions régulières pour analyser les dates JSON :
package main import ( "fmt" "regexp" ) func main() { date := "2023-07-04T13:30:00.123Z" matched, err := regexp.MatchString(`^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(\.\d+)?Z$`, date) if err != nil { fmt.Println("Error:", err) return } if matched { fmt.Println("Date parsed successfully") } else { fmt.Println("Invalid date format") } }
Exemple pratique
Supposons que vous ayez un fichier JSON nommé "dates.json"
qui contient un tableau de dates :
{ "dates": [ "2023-07-04T13:30:00.123Z", "2023-07-05T10:00:00Z", "2023-07-06T15:15:00Z" ] }
Ce qui suit est le JSON d'analyse fichier Code modifié pour la date en :
package main import ( "encoding/json" "fmt" "io/ioutil" "log" "regexp" ) func main() { data, err := ioutil.ReadFile("dates.json") if err != nil { log.Fatal(err) } type DateResponse struct { Dates []string `json:"dates"` } var datesResponse DateResponse if err := json.Unmarshal(data, &datesResponse); err != nil { log.Fatal(err) } for _, date := range datesResponse.Dates { matched, err := regexp.MatchString(`^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(\.\d+)?Z$`, date) if err != nil { fmt.Println("Error:", err) } if matched { fmt.Println("Date parsed successfully") } else { fmt.Println("Invalid date format:", date) } } }
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!