郵便番号の正規表現 ^[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の数字列を表現しています。これ以外の数字列は不一致となります。
サンプルプログラム
入力した文字列が全角カタカナであるか否かをチェックするプログラムを作成します。
入力値の前後の空白は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