golang で正規表現を使用して文字列が数値かどうかを確認する

PHPz
リリース: 2023-06-24 09:11:16
オリジナル
1886 人が閲覧しました

golang では、正規表現を使用して、文字列が数値であるかどうかを簡単に検証できます。 golangで数値検証に正規表現を使う方法を紹介します。

まず、正規表現の関連パッケージ、つまり regexp パッケージをインポートする必要があります。 golang の regexp パッケージには、文字列が特定の正規表現のルールに準拠しているかどうかを検証するために使用できる関数 MatchString が用意されています。

次に、数値検証用の正規表現を記述する必要があります。 golang では、数値は整数または浮動小数点数になる可能性があるため、整数と浮動小数点数をそれぞれ検証するために 2 つの正規表現を記述する必要があります。

整数を検証する正規表現:

^[0-9]+$
ログイン後にコピー

この正規表現の意味は、0 ~ 9 の数字で始まり、中間に 1 つ以上の 0 ~ 9 の数字が含まれ、最後で終わるということです。数字の末尾は 0 ~ 9 です。この正規表現は、文字列が整数であるかどうかを検証できます。

浮動小数点数を検証するための正規表現:

^[0-9]+(.[0-9]+)?$
ログイン後にコピー

この正規表現の意味は、数値 0 ~ 9 で始まり、途中に 1 つ以上の数字 0 ~ 9 が含まれることです。小数点「.」が表示され、その後に 1 つ以上の 0 ~ 9 の数字が続き、最後に 0 ~ 9 の数字で終わります。この正規表現は、文字列が浮動小数点数であるかどうかを検証できます。

ここで、golang で数値検証にこれら 2 つの正規表現を使用する方法を見てみましょう:

package main

import (
    "fmt"
    "regexp"
)

func isNumber(str string) bool {
    // 整数的正则表达式
    integerPattern := "^[0-9]+$"

    // 浮点数的正则表达式
    floatPattern := "^[0-9]+(\.[0-9]+)?$"

    match, _ := regexp.MatchString(integerPattern, str)
    if match {
        return true
    }

    match, _ = regexp.MatchString(floatPattern, str)
    if match {
        return true
    }

    return false
}

func main() {
    fmt.Println(isNumber("123"))    // true
    fmt.Println(isNumber("12.3"))   // true
    fmt.Println(isNumber("abc"))    // false
    fmt.Println(isNumber("1a2b3c")) // false
}
ログイン後にコピー

上記のコードでは、数値検証 verify を実行する isNumber 関数を作成しました。この関数は文字列をパラメータとして受け取り、整数の正規表現と浮動小数点の正規表現を使用して文字列が数値であるかどうかを確認します。検証が成功した場合は true を返し、そうでない場合は false を返します。

最後に、main 関数で isNumber 関数を呼び出し、一部の文字列が数値であるかどうかを確認します。ご覧のとおり、入力文字列が数値の場合、関数の戻り結果は true であり、それ以外の場合は false です。

実際の開発では、デジタル検証は非常に一般的な操作です。正規表現を使用すると、数値検証が容易になります。上記は、golang で正規表現を使用して文字列が数値であるかどうかを確認する方法の紹介です。

以上がgolang で正規表現を使用して文字列が数値かどうかを確認するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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