Input for WinForms
正規表現によるマスク編集
C1Input コントロールの使い方 > 日本語特有の機能 > 日本語の入力制御(C1TextBox コントロール) > 正規表現によるマスク編集

C1TextBoxコントロールでは、MaskInfo.RegexpEditMaskプロパティを使用することにより、正規表現によるマスク編集をサポートします。正規表現を使用することで、より複雑なマスク書式による検証が可能です。

正規表現によるマスク編集で使用可能なキーワードは以下の通りです。書式指定子が全角か半角かで、制御対象となる文字(全角/半角)が決定します。

半角

全角

出力例

\A \A 英大文字に一致します。[A-Z] と同等です。
\a \a 英小文字に一致します。[a-z] と同等です。
\D \D 数字に一致します。[0-9] と同等です。
\W \W 単語文字に一致します。[a-z A-Z 0-9] と同等です。
\K \K カタカナ(促音・拗音の小書き表記なし)に一致します。
\H \Z すべての半角文字に一致します。
\J ひらがな(促音・拗音の小書き表記あり)に一致します。
\N \N カタカナ(促音・拗音の小書き表記なし)に一致します。
\G ひらがな(促音・拗音の小書き表記なし)に一致します。
\T サロゲート文字に一致します。

また、以下に示す補助的なキーワードと組み合わせて使用することができます。

キーワード 説明
[] []内の文字のどれか1つにマッチすることを表します
^ 次に続く文字をサブセットから除外することを表します。
- 連続する文字範囲を表します。
{} 直前のキーワードの繰り返しを表します。
* 直前のキーワードの0回以上の繰り返しを表します。{0,} と同等です。
+ 直前のキーワードの0回以上の繰り返しを表します。{1,} と同等です。
? 直前のキーワードの0回または1回の繰り返しを表します。{0,1} と同等です。

以下に、正規表現による書式の設定および表示例を示します。

書式

表示例

説明

\Z{0, 50} あア漢1Aa 0文字以上、50文字以下のすべての全角を表します。
\D{3, 5} 1234 3文字以上、5文字以下のすべての半角数字を表します。
[1-3,a-c,A-C]{10} 123a 10文字の1,2,3,a,b,c,A,B,Cを表します。
[A-Z]{0, 65535} ABCDE 半角英大文字を表します。\Aと同等です
[H^a-z]{0, 65535} 12ABアイウ 英小文字を除くすべての半角文字を表します。
[^\T]{0, 65535} あア漢1Aa サロゲート ぺア文字を除くすべての文字を表します。

以下に、正規表現によるマスク書式を指定するサンプルコードを紹介します。

Visual Basic
コードのコピー
Private Sub Form1_Load(sender As Object, e As EventArgs)
C1TextBox1.MaskInfo.RegexpEditMask = "[1-3,a-c,A-C]{10}"
End Sub
C#
コードのコピー
private void Form1_Load(object sender, EventArgs e)
{
c1TextBox1.MaskInfo.RegexpEditMask = @"[1-3,a-c,A-C]{10}";
}

上記コードの実行結果

1234」と入力しようとすると、「123」は入力されますが、「4」は入力されません。