ホームページ  >  記事  >  バックエンド開発  >  Goで正規表現を使用してJSON日付を解析するにはどうすればよいですか?

Goで正規表現を使用してJSON日付を解析するにはどうすればよいですか?

WBOY
WBOYオリジナル
2024-06-03 15:27:08374ブラウズ

正規表現を使用して 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: ズールー語のタイムゾーン

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。