Heim >Backend-Entwicklung >Golang >Wie analysiere ich das JSON-Datum mithilfe regulärer Ausdrücke in Go?

Wie analysiere ich das JSON-Datum mithilfe regulärer Ausdrücke in Go?

WBOY
WBOYOriginal
2024-06-03 15:27:08456Durchsuche

Wie analysiere ich JSON-Daten mit regulären Ausdrücken? Verwenden Sie den regulären Ausdruck „^(d{4})-(d{2})-(d{2})T(d{2}):(d{2}):(d{2})(.d+ )?Z$“ entspricht JSON-Daten im Format „JJJJ-MM-TTTHH:MM:SS.mmmZ“. Analysieren Sie das Datum mit der Funktion regexp.MatchString und geben Sie bei erfolgreicher Analyse „Datum erfolgreich analysiert“ aus.

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

So verwenden Sie reguläre Ausdrücke zum Parsen von JSON-Daten in Go

Go bietet eine leistungsstarke Bibliothek regulärer Ausdrücke, die zum Parsen und Verarbeiten komplexer Texte, einschließlich JSON-Daten, verwendet werden kann. Dieser Artikel führt Sie Schritt für Schritt durch das Parsen von JSON-Daten mit regulären Ausdrücken und liefert einen praktischen Fall.

Syntax für reguläre Ausdrücke

Der folgende reguläre Ausdruck kann zum Abgleichen von JSON-Daten verwendet werden:

/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(\.\d+)?Z$/

Dieser Ausdruck kann Datumsangaben im Format „JJJJ-MM-TTTHH:MM:SS.mmmZ“ abgleichen, wobei:

  • Yjyy: Jahr
  • mm: Monat
  • dd: Datum
  • HH: Stunde
  • mm: Minute
  • SS: Zweite
  • mmm: Millisekunden (optional)
  • Z: Zulu Zeitzone

Go Code

Der folgende Go-Code zeigt, wie reguläre Ausdrücke zum Parsen von JSON-Daten verwendet werden:

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")
    }
}

Praktisches Beispiel

Angenommen, Sie haben eine JSON-Datei mit dem Namen "dates.json", die ein Array von Datumsangaben enthält:

{
  "dates": [
    "2023-07-04T13:30:00.123Z",
    "2023-07-05T10:00:00Z",
    "2023-07-06T15:15:00Z"
  ]
}

Das Folgende ist das Parsing-JSON Datei Geänderter Code für das Datum in:

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)
        }
    }
}

Das obige ist der detaillierte Inhalt vonWie analysiere ich das JSON-Datum mithilfe regulärer Ausdrücke in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn