どれか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]*』を使うことで解決できます。