Maison  >  Article  >  développement back-end  >  Comment analyser la date JSON à l'aide d'expressions régulières dans Go ?

Comment analyser la date JSON à l'aide d'expressions régulières dans Go ?

WBOY
WBOYoriginal
2024-06-03 15:27:08441parcourir

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.

如何在 Go 中使用正则表达式解析 JSON 日期?

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ù :

  • Yyyy: année
  • mm: mois
  • dd: date
  • hh: heure
  • mm: minute
  • SS: deuxième
  • mmm: milliseconde (facultatif)
  • z: zulu fuseau horaire

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!

Déclaration:
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