整数 0~9999の正規表現 ^[0-9]{1,4}$
正規表現:RegexクラスのIsMatchメソッドを使って、0~9999の正整数のエラーをチェックするプログラムを作成します。
次のサンプルプログラム内の正規表現^[0-9]{1,4}$について分かりやすく表現すると、
^:文字列の先頭文字から
[0-9]:半角の0から9の数字が
{1,4}:1桁~4桁で
$:最後まで連続している
となります。つまり、0~9999の整数を表現しています。これ以外の文字列は不一致となります。
たとえば、最後の $ がない^[0-9]{1,4} は、123abcのように数字の後に何がついてもOKになってしまいます。また、1234567のように、5桁以上の数字でもOKになります。
サンプルプログラム
入力した文字列が0以上の整数かつ9999以下の整数であるか否かのチェックをするプログラムを作成します。
サンプルプログラムでは、入力値の前後の空白はTrim関数で事前に取り除き、さらに、3桁ごとの区切り文字","もReplace関数で取り除いています。
コントロール | プロパティ | 設定値 |
---|---|---|
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) ' ","を削除 TextBox1.Text = TextBox1.Text.Replace(",", "") ' 0~9999の整数チェック If Regex.IsMatch(TextBox1.Text, "^[0-9]{1,4}$") Then ' 正常:指定範囲内の文字が入力された時 ' 3桁ごとに","編集 TextBox1.Text = Format(CInt(TextBox1.Text), "#,##0") ' 正常メッセージの表示 StatusBar1.Text = _ TextBox1.Text.ToString & "が入力されました" Else ' エラー:指定範囲外の文字が入力された時 ' エラーメッセージの表示 MessageBox.Show _ ("0~9999の整数を入力してください", "エラー") End If ' フォーカス設定 TextBox1.Focus() End Sub End Class