正規表現を使用して golang で時刻形式を確認する方法

WBOY
リリース: 2023-06-24 10:24:23
オリジナル
1335 人が閲覧しました

golang では、時刻形式を確認するために正規表現を使用することが非常に一般的な要件です。時刻形式の検証は、アプリケーションでのユーザー入力の正確性を確認し、時刻処理時の問題を回避するのに役立ちます。正規表現は、時刻形式の検証の実装に役立つ強力なツールです。この記事では、正規表現を使用して golang で時刻形式を確認する方法を紹介します。

まず、正規表現の構文と基本的な知識を理解する必要があります。 golang では、正規表現操作を実行するために regexp パッケージを使用します。このパッケージは、文字列の一致、文字列の検索、文字列の置換、文字列の検証などの操作に使用できる Regexp 構造と関連メソッドを提供します。時刻形式の検証に正規表現を使用する場合は、時刻形式の特性に基づいて正規表現を構築する必要があります。

次に、一般的な時刻形式と対応する正規表現を示します:

  1. yyyy-MM-dd HH:mm:ss:

^ \d {4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|1-2|3[0-1]) (?:01| 2[ 0-3]):0-5:0-5$

  1. yyyy-MM-dd HH:mm:ss.SSS:

^\d {4 }-(?:0[1-9]|1[0-2])-(?:0[1-9]|1-2|3[0-1]) (?:01|2[ 0- 3]):0-5:0-5.[0-9]{3}$

    ##yyyy/MM/dd HH:mm:ss:
  1. #^ \d{4}/(?:0[1-9]|1[0-2])/(?:0[1-9]|1-2|3[0-1]) (? :01| 2[0-3]):0-5:0-5$

##yyyy/MM/dd HH:mm:ss.SSS:

  1. ^\d{ 4}/(?:0[1-9]|1[0-2])/(?:0[1-9]|1-2|3[0-1]) (?:01 |2[0 -3]):0-5:0-5.[0-9]{3}$
上記の正規表現では、 \d ​​は数値を表し、 ^ は一致する文字列の先頭を表します。 $ は一致する文字列の終わりを表し、(?:...) は非キャプチャ グループを表し、| は or を表し、[...] は文字セットを表し、\ はエスケープ文字を表し、{m,n} は繰り返し回数の範囲。

上記の正規表現について、それぞれ一致する時刻形式を説明します:

yyyy-MM-dd HH:mm:ss: 例: 2021-09- 01 12 :30:45

    yyyy-MM-dd HH:mm:ss.SSS: 例: 2021-09-01 12:30:45.555
  1. yyyy/MM/dd HH: mm: ss: 例: 2021/09/01 12:30:45
  2. yyyy/MM/dd HH:mm:ss.SSS: 例: 2021/09/01 12:30:45.555
  3. 実際のアプリケーションでは、対応する正規表現を選択して、実際のニーズに応じて時刻形式を検証できます。
以下は、golang で書かれた時刻形式検証のコード例です。

package main

import (
    "fmt"
    "regexp"
)

func main() {
    timeStr := "2021-09-01 12:30:45"
    pattern := `^d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1]) (?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$`
    match, _ := regexp.MatchString(pattern, timeStr)
    if match {
        fmt.Println("时间格式正确")
    } else {
        fmt.Println("时间格式错误")
    }
}
ログイン後にコピー

上記のコード例では、最初に時刻文字列 timeStr と対応する正規表現パターンを定義します。照合には MatchString メソッドを使用し、照合に成功した場合は「時刻形式が正しい」が出力され、そうでない場合は「時刻形式が正しくありません」が出力されます。

概要

時刻形式の検証は比較的一般的な要件であり、この機能は golang の正規表現を使用して簡単に実装できます。この記事では、いくつかの一般的な時刻形式とそれに対応する正規表現を紹介し、golang コードの例を示します。

以上が正規表現を使用して golang で時刻形式を確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート