どれか1文字にマッチする文字集合


VBAで正規表現 04回

いずれかの1文字にマッチする文字集合

[ ] で囲まれた文字列は、その中のいずれか1文字にマッチする正規表現 (文字集合:set of characters) を表しています。
たとえば、[月火水]は "月", "火", "水" のいずれかにマッチし、[abc] は "a", "b", "c" のいずれかにマッチします。

正規表現の [] (角括弧,Square Brackets)

[] でつくるパターン

メタ文字 表記 説明
[] 角括弧,Square Brackets "[ ]"内で文字集合の要素を指定
[^] 角括弧の中にキャレット [] の中で ^ を最初に置くと、否定の意味になる。"[^ ]"内の要素以外にマッチ

正規表現の [] は、文字クラスを作成するためのもので、[] 内のいずれかの一文字にマッチします。


正規表現の [] 具体的な使用法

[abc] : 'a' または 'b' または 'c' のいずれか1文字にマッチします。

[a-z] : 小文字の 'a' から 'z' までの任意の1文字にマッチします。
連続する文字の場合は、'a-z'のように、ハイフン'-'で省略表記することができます。

[A-Z] : 大文字の 'A' から 'Z' までの任意の1文字にマッチします。

[0-9] : 数字の '0' から '9' までの任意の1文字にマッチします。

[a-zA-Z] : 小文字の 'a' から 'z' まで、または大文字の 'A' から 'Z' までの任意の1文字にマッチします。

[a-zA-Z0-9] : 小文字の 'a' から 'z' まで、大文字の 'A' から 'Z' まで、数字の '0' から '9' までの任意の1文字にマッチします。

[^abc] : 'a' でも 'b' でも 'c' でもない任意の1文字にマッチします。

[^a-z] : 小文字の 'a' から 'z' のいずれでもない任意の一文字にマッチします。大文字のアルファベット、数字、記号、空白などが該当します。

[^0-9] : 数字の '0' から '9' のいずれでもない任意の一文字にマッチします。これは \D と同等です。

[^0-9]+ : 1つ以上の数字以外の文字列にマッチ。

[^aeiou] : 小文字の母音 'a', 'e', 'i', 'o', 'u' のいずれでもない任意の一文字にマッチします。これは子音や大文字、数字、記号、空白などが該当します。

文字集合を表すメタ文字(特殊文字)

正規表現でよく使う集合を表す特殊文字を確認しましょう。

メタ文字 含まれる文字集合
. 任意の一文字を表します(改行文字を除く) a.c は "abc", "a1c", "a!c", などに一致します。
\w 単語文字(英数字・日本語などのこと) 全角文字等も含む。"\w曜日"とすれば、曜日を抽出できる。
\W 単語文字以外 全角文字等も含む。単語文字以外を含むハイフンや括弧、スペースにマッチするので、それらを含む行などを抽出するのに役出つ。
\d 数字 全角数字等も含む。
\D 数字以外 全角数字等も含む。
\s 空白文字(スペース、タブ、改行など) abc|xyz は "abc" または "xyz" に一致します。
\S 空白文字以外

正規表現の任意文字に改行を含める場合
正規表現では、任意の文字列にマッチさせる場合に 『.*』 を使用します。
しかし『.』は改行文字を除いた文字とマッチです。
つまり、もし改行が含まれていると 『.*』 は改行を含んだ任意の文字列とマッチしなくなります。
改行を含む文字列とマッチさせたい場合には、『[\s\S]*』を使うことで解決できます。

こちらもおすすめ