正規表現 郵便番号チェック [VB.NET]

Visual Basic.NET ADO.NETデータベースプログラミング

郵便番号の正規表現 ^[0-9]{3}[\-]?[0-9]{4}$

正規表現:RegexクラスのIsMatchメソッドを使って、郵便番号をチェックするプログラムを作成します。

次のサンプルプログラム内の正規表現 "^[0-9]{3}[\-]?[0-9]{4}$ について分かりやすく表現すると、

^:文字列の先頭文字から

[0-9]:半角の0から9の数字が

{3}:3桁で

[\-]?:半角-があっても無くてもよく

[0-9]:半角の0から9の数字が

{4}:4桁で

$:最後まで連続している

となります。つまり、333-4444や1234567の数字列を表現しています。これ以外の数字列は不一致となります。

サンプルプログラム

VB.NET

入力した文字列が全角カタカナであるか否かをチェックするプログラムを作成します。

入力値の前後の空白はTrim関数で事前に取り除いています。

Regex.IsMatch(TextBox1.Text, "^[0-9]{3}[\-]?[0-9]{4}$") の第1パラメータの文字列が、第2パラメータの正規表現文字列に一致すればTrueを、不一致ならばFalseを返します。

正規表現実行例
コントロール プロパティ 設定値
TextBox1 TextAlign Right
BtnCheck Text チェック
StatusBar1 Text

Imports System.Text.RegularExpressions

Public Class Form1
    Inherits System.Windows.Forms.Form

#Region " Windows フォーム デザイナで生成されたコード "
    '自動生成部分省略
#End Region

    Private Sub BtnCheck_Click _
      (ByVal sender As System.Object, ByVal e As System.EventArgs) _
      Handles BtnCheck.Click

        ' 前後の空白除去
        TextBox1.Text = Trim(TextBox1.Text)

        ' 郵便番号チェック
        If Regex.IsMatch(TextBox1.Text, "^[0-9]{3}[\-]?[0-9]{4}$") Then
            StatusBar1.Text = TextBox1.Text + "が入力されました"
        Else
            ' 入力エラー
            StatusBar1.Text = ""
            MessageBox.Show _
            ("9999999または999-9999の形式で入力してください", "エラー")
        End If
' フォーカス設定 TextBox1.Focus() End Sub End Class