ホームページ  >  記事  >  バックエンド開発  >  golang で正規表現を使用して、入力が有効な ISO 3166-1 Alpha-2 国コードであるかどうかを確認する方法

golang で正規表現を使用して、入力が有効な ISO 3166-1 Alpha-2 国コードであるかどうかを確認する方法

WBOY
WBOYオリジナル
2023-06-25 10:09:07998ブラウズ

golang では、正規表現を使用して、ISO 3166-1 Alpha-2 国コードの有効性の検証など、入力値の形式を簡単に検証できます。

ISO 3166-1 Alpha-2 国コードは、ISO 3166 国際規格で定義された標準エンコードです。2 文字を使用して、各国/地域の一意のコードを表します。たとえば、中国のコードは「CN」です。 "、米国のコードは「US」です。入力が有効な ISO 3166-1 Alpha-2 国コードであることを確認するには、次のような特定のルールに従う必要があります:

  1. は 2 つの大文字で構成する必要があります;
  2. 文字は次のとおりですラテン文字です。
  3. は大文字と小文字が区別されます。
  4. には重複したコードはありません。

golang では、正規表現を使用して ISO 3166-1 Alpha-2 国コードを検証できます。単純な正規表現は次のとおりです:

^[A-Z]{2}$

この正規表現の意味は次のとおりです:

  1. ^ で始まり $ で終わり、入力値全体が満たす必要があることを示します。この条件;
  2. [A-Z]{2} は、2 つの大文字 (A-Z) で構成されている必要があることを意味し、中括弧内の 2 は長さが 2 文字である必要があることを意味します。

次に、golang の regexp パッケージが提供する関数を使用して、入力値が正規表現に準拠しているかどうかを検証します。サンプルコードは次のとおりです。このコードでは、まず入力値 input を定義し、正規表現 ^[A-Z]{2}$ を正規表現にコンパイルします。次に、

regex.MatchString(input)

関数を使用して、入力値が正規表現と一致するかどうかを確認します。一致しない場合はエラーメッセージが出力され、一致する場合は成功メッセージが出力されます。 検証に正規表現を使用する場合は、次のような特殊な状況にも注意する必要があります。

大文字と小文字を区別する: 大文字と小文字を区別する必要がある場合は、# を使用できます。正規表現の先頭に ##(?i)
    を設定しますサンプルコードは以下の通りです:
  1. <pre class='brush:go;toolbar:false;'>package main import ( &quot;fmt&quot; &quot;regexp&quot; ) func main() { input := &quot;CN&quot; // 编译正则表达式 regex := regexp.MustCompile(&quot;^[A-Z]{2}$&quot;) // 验证输入值是否符合正则表达式 if !regex.MatchString(input) { fmt.Printf(&quot;%s不是一个有效的ISO 3166-1 Alpha-2国家/地区代码 &quot;, input) } else { fmt.Printf(&quot;%s是一个有效的ISO 3166-1 Alpha-2国家/地区代码 &quot;, input) } }</pre>ここでの
  2. (?i)
は無視することを意味します場合。

コードの重複を避ける: ISO 3166-1 Alpha-2 国コードでは、コードの重複は許可されません。コードの重複を避けるために、既存のコードを配列またはマップに保存できます。正規表現検証を使用するたびに、まず入力値が配列またはマップにあるかどうかを判断します。存在する場合は、それが存在することを意味します。有効な ISO 3166 -1 Alpha-2 国コードではありません。サンプル コードは次のとおりです。

    regex := regexp.MustCompile("(?i)^[a-z]{2}$")
  1. このサンプル コードでは、まず ISO 3166-1 Alpha-2 国コード コードの既存の配列を定義し、ループを使用して配列を要素ごとに走査します。で 。入力値が配列内にすでに存在する場合は、それが有効な ISO 3166-1 Alpha-2 国コードではないことを意味します。入力値が配列内に存在しない場合は、検証に正規表現を引き続き使用します。

以上がgolang で正規表現を使用して、入力が有効な ISO 3166-1 Alpha-2 国コードであるかどうかを確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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