日々のソフトウェア開発では、ユーザーが入力したデータを検証する必要がある状況によく遭遇します。その中でも、正規表現を使用して入力データを検証する方法は、データを特定のパターンと簡単に照合できるため、一般的な方法です。
この記事では、golang で正規表現を使用して、入力が合法的なブロードバンド アカウントであるかどうかを確認する方法を紹介します。
ブロードバンド アカウントの規則:
我が国では、ブロードバンド アカウントは通常、5 ~ 18 桁の数字または文字で構成されます。このうち、数字と文字は再利用できます。
golang で正規表現を使用してブロードバンド アカウントの正当性を検証するには、regexp パッケージが提供する関数を使用します。
まず、正規表現パッケージを導入する必要があります:
import "regexp"
次に、ブロードバンド アカウントを確認するための isBroadbandAccount という名前の関数を定義します。この関数のパラメータは検証対象の文字列であり、戻り値は検証対象の文字列がブロードバンド アカウントのルールに準拠しているかどうかを示す bool 型です。
func isBroadbandAccount(str string) bool { // 定义正则表达式 pattern := `^[a-zA-Z0-9]{5,18}$` // 编译正则表达式 reg := regexp.MustCompile(pattern) // 进行匹配 return reg.MatchString(str) }
上記のコードでは、^ 記号と $ 記号を使用して、文字列の先頭と末尾を検証します。角括弧内の a-zA-Z0-9 には数字または大文字と小文字を使用でき、5 ~ 18 回繰り返すことができます。
正規表現のコンパイルには MustCompile 関数が使用されます。この関数は、コンパイル中に正規表現の正しさをチェックし、正規表現の形式が正しくない場合にパニックを引き起こす可能性があります。
最後に、MatchString 関数を使用して正規表現を照合し、照合結果を返します。
以下に、isBroadbandAccount 関数が適切に動作するかどうかをテストする簡単なプログラムを作成します。
package main import ( "fmt" "regexp" ) func isBroadbandAccount(str string) bool { // 定义正则表达式 pattern := `^[a-zA-Z0-9]{5,18}$` // 编译正则表达式 reg := regexp.MustCompile(pattern) // 进行匹配 return reg.MatchString(str) } func main() { // 测试用例 cases := []struct { input string want bool }{ {"abcd123", true}, {"a1b2c3d4", true}, {"1a2b3c4d", true}, {"", false}, {"abc1234567890123", false}, } // 遍历测试用例 for _, c := range cases { got := isBroadbandAccount(c.input) if got != c.want { fmt.Printf("isBroadbandAccount(%q) == %v, want %v ", c.input, got, c.want) } } }
上記のプログラムでは、いくつかのテスト ケースを定義し、ループ トラバーサルを通じてテストしました。各テスト ケースには、入力文字列と予想される出力が含まれています。
最後に、テスト プログラムを実行すると、出力結果は次のようになります。
isBroadbandAccount("abc1234567890123") == false, want true
出力結果からわかるように、isBroadbandAccount 関数はブロードバンド アカウントの正当性を正しく検証できます。
概要:
この記事では、golang で正規表現を使用して、入力が合法的なブロードバンド アカウントであるかどうかを確認する方法を紹介します。 regexp パッケージが提供する関数を使用し、簡単なプログラムでテストしました。この記事の導入により、読者は golang で正規表現を使用して入力データの正当性を検証する方法を学ぶことができ、将来の開発作業に役立ちます。
以上がgolang で正規表現を使用して、入力が合法的なブロードバンド アカウントであるかどうかを確認するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。