首頁  >  文章  >  後端開發  >  如何在 Go 中使用正規表示式解析 JSON 日期?

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

WBOY
WBOY原創
2024-06-03 15:27:08373瀏覽

如何使用正規表示式解析 JSON 日期?使用正規表示式"^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{ 2})(.\d+)?Z$" 匹配格式為"YYYY-MM-DDTHH:MM:SS.mmmZ" 的JSON 日期。透過 regexp.MatchString 函數解析日期,並在成功解析時列印 "日期解析成功"。

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

如何在Go 中使用正規表示式解析JSON 日期

Go 提供了強大的正規表示式函式庫,可用於解析和處理複雜的文本,包括JSON 日期。本文將引導您逐步進行正規表示式解析 JSON 日期,並提供實戰案例。

正規表示式語法

以下正規表示式可用來符合JSON 日期:

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

此表達式可以符合格式為"YYYY-MM -DDTHH:MM:SS.mmmZ" 的日期,其中:

  • YYYY:年份
  • MM:月份
  • #DD:日期

################################################################## HH:小時######MM:分鐘######SS:秒######mmm:毫秒(可選)######Z:Zulu 時區###### ######Go 程式碼#########以下Go 程式碼展示如何使用正規表示式解析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")
    }
}
######實戰案例######## ##假設您有一個名為###"dates.json"### 的JSON 文件,其中包含日期數組:###
{
  "dates": [
    "2023-07-04T13:30:00.123Z",
    "2023-07-05T10:00:00Z",
    "2023-07-06T15:15:00Z"
  ]
}
###以下是解析JSON 文件中日期的修改後的程式碼:## #
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)
        }
    }
}

以上是如何在 Go 中使用正規表示式解析 JSON 日期?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn