正規表現 全角カタカナチェック [VB.NET]

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

全角カタカナの正規表現 ^[ァ-ー]+$

正規表現:RegexクラスのIsMatchメソッドを使って、全角カタカナをチェックするプログラムを作成します。

次のサンプルプログラム内の Regex.IsMatch(TextBox1.Text, " ^[ァ-ー]+$") について説明します。

^[ァ-ー]+$ が正規表現で、第1パラメータの文字列が、第2パラメータの正規表現文字列に一致すればTrueを、不一致ならばFalseを返します。

正規表現 ^[ァ-ー]+$ について分かりやすく表現すると、

^:TextBox1.Textの先頭文字から

[ァ-ー]:全角カタカナが(コード表を見ればカタカナが連続しているのが分かる)

+:1文字以上

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

となります。つまり、全角カタカナ文字列を表現しています。

Unicodeカタカナ

使わないカタカナを除外する時は少し長くなりますが、文字範囲を分割した正規表現に変更します。たとえば[ァ-ー]の代わりに、[アイウエオカ-ヂツ-モヤユヨラ-ロワオンー]のようにすれば、小さいカタカナや通常使わないカタカナを除外できます。

サンプルプログラム

VB.NET

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

サンプルプログラムでは、入力値の前後の空白はTrim関数で事前に取り除いています。

正規表現実行例
コントロール プロパティ 設定値
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, "^[ァ-ー]+$") Then
      StatusBar1.Text = TextBox1.Text & " が入力されました"
    Else
      ' カタカナエラー
      StatusBar1.Text = ""
      MessageBox.Show("全角カタカナで入力してください", "エラー")
    End If
    TextBox1.Focus()

  End Sub

End Class