全角カタカナの正規表現 ^[ァ-ー]+$
正規表現:RegexクラスのIsMatchメソッドを使って、全角カタカナをチェックするプログラムを作成します。
次のサンプルプログラム内の Regex.IsMatch(TextBox1.Text, " ^[ァ-ー]+$") について説明します。
^[ァ-ー]+$ が正規表現で、第1パラメータの文字列が、第2パラメータの正規表現文字列に一致すればTrueを、不一致ならばFalseを返します。
正規表現 ^[ァ-ー]+$ について分かりやすく表現すると、
^:TextBox1.Textの先頭文字から
[ァ-ー]:全角カタカナが(コード表を見ればカタカナが連続しているのが分かる)
+:1文字以上
$:最後まで連続している
となります。つまり、全角カタカナ文字列を表現しています。
使わないカタカナを除外する時は少し長くなりますが、文字範囲を分割した正規表現に変更します。たとえば[ァ-ー]の代わりに、[アイウエオカ-ヂツ-モヤユヨラ-ロワオンー]のようにすれば、小さいカタカナや通常使わないカタカナを除外できます。
サンプルプログラム
入力した文字列が全角カタカナであるか否かをチェックするプログラムを作成します。
サンプルプログラムでは、入力値の前後の空白は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