Unix タイムスタンプは、一般的な時刻表現方法として、Golang でも広く使用されています。実際の開発では、プログラムの正確性とセキュリティを確保するために、ユーザーが入力した Unix タイムスタンプを検証する必要があることがよくあります。一般的に使用される検証ツールである正規表現は、Unix タイムスタンプの検証にも非常に適しています。この記事では、Golang で正規表現を使用して、入力が有効な Unix タイムスタンプであるかどうかを確認する方法について説明します。
Unix タイムスタンプの定義は単純で、1970 年 1 月 1 日の 00:00:00 UTC から経過した秒数です。 Unix タイムスタンプは通常、正または負の整数です。正の整数は 1970 年以降の秒数を表し、負の整数は 1970 年以前の秒数を表します。
まず、Golang で正規表現を使用する方法を理解する必要があります。 Regexp パッケージは Golang で提供されており、正規表現の解析および照合機能を実装しています。このパッケージが提供する Compile()、MatchString()、FindString() などの関数を使用して、正規表現操作を実行できます。
Golang では、次の正規表現を使用して Unix タイムスタンプを検証できます:
^(-?[1-9]d{0,9}|0)$
この正規表現は、正の整数、負の整数、0 を含む 32 ビットの符号付き整数と一致します。すべての整数が含まれます。このうち「^」は文字列の先頭を表し、「$」は文字列の末尾を表します。 「?」は前の文字が 0 回または 1 回出現できることを意味し、「d」は数字を表し、「{0,9}」は前の文字が 0 ~ 9 回出現できることを意味し、「|」は or を表します。
以下はサンプル コードです:
package main import ( "fmt" "regexp" ) func main() { re := regexp.MustCompile(`^(-?[1-9]d{0,9}|0)$`) // 编译正则表达式 input := "1629755400" // 需要判断的 Unix 时间戳 if !re.MatchString(input) { fmt.Println("输入不是有效的 Unix 时间戳") } else { fmt.Println("输入是有效的 Unix 时间戳") } }
このサンプル コードでは、まず検証する必要がある Unix タイムスタンプを入力変数に格納します。次に、Regexp.MustCompile() 関数を使用して、正規表現 "^(-?[1-9]d{0,9}|0)$" を正規表現オブジェクト re にコンパイルします。
最後に、MatchString() 関数を使用して入力を照合します。正規表現が一致しない場合は「入力は有効な Unix タイムスタンプではありません」を出力し、一致しない場合は「入力は有効な Unix タイムスタンプです」を出力します。
正規表現による検証は、入力形式が正しいかどうかを判定するだけで、入力されたタイムスタンプがビジネス上妥当であるかどうかは保証できませんので、実際の開発ではタイムスタンプも必要となります。ビジネスの正確さとセキュリティを確保するためのさらなる検査と処理。
この記事の導入を通じて、読者は Golang で正規表現を使用して有効な Unix タイムスタンプかどうかを確認する方法を学習したと思います。正規表現は非常に強力なツールであり、正規表現の使用に習熟すると、プログラムの効率と信頼性が大幅に向上します。
以上がgolang で正規表現を使用して入力が有効な Unix タイムスタンプであることを確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。