郵便番号が正しいかをチェックする

郵便番号を入力されたとき、その入力が正しいかどうかを判定するコードを考えてみましょう

コード

using System.Text.RegularExpressions;

Console.WriteLine(IsValidPostalCode("123-4567")); // true
Console.WriteLine(IsValidPostalCode("1234567")); // true
Console.WriteLine(IsValidPostalCode("1234-567")); // false
Console.WriteLine(IsValidPostalCode("123-456")); // false
Console.WriteLine(IsValidPostalCode("123456789")); // false

bool IsValidPostalCode(string postalCode)
{
    string pattern = @"^\d{3}-?\d{4}$";
    return Regex.IsMatch(postalCode, pattern);
}

解説

bool IsValidPostalCode(string postalCode)
{
    string pattern = @"^\d{3}-?\d{4}$";
    return Regex.IsMatch(postalCode, pattern);
}

このコードは、IsValidPostalCodeという名前のC#メソッドで、文字列の入力 postalCodeを受け取り、その郵便番号が有効かどうかを示すbool値を返します。

このメソッドは、文字列変数patternで定義された正規表現パターンを使って、入力された郵便番号にマッチします。パターンは"^¥d{3}-?¥d{4}$"です。

文字列の先頭と一致します(次の3桁の数値が先頭であること)
\d{3} 正確に3桁の数字と一致します
-?ハイフン(0または1)にマッチします
言い換えると、ハイフンがある場合ない場合の両方に一致することになります
\d{4}正確に4桁の数字に一致します
$文字列の末尾に一致する(前の4桁の数とが末尾であること)

このメソッドは 正規表現を使用するためのライブラリのSystem.Text.RegularExpressions名前空間、Regex クラスの IsMatch メソッドを使って postalCode をパターンにマッチさせます。もし postalCode がパターンにマッチすれば、IsMatch メソッドは真を返し、そうでなければ偽を返します。IsMatchの戻り値は、次にIsValidPostalCodeメソッドの結果として返されます。