VBA:正規表現とメタ文字のまとめ
1.VBAの正規表現
VBAも値や文字列に「~を含む」や「~に一致する」「3文字の数字」など、指定したパターンに一致するか否かを評価することができます。
VBAで正規表現を使う場合「RegExpオブジェクト」を利用します。
この記事では、メタ文字と正規表現、VBAがサポートする正規表現の一覧を記事にしています。
実際の利用方法については、ページの下にある関連記事からご覧ください。
2.メタ文字と正規表現
メタ文字は簡単に言うと、その文字本来の意味とは異なった、プログラム言語で特別な意味を持たせた文字のことです。VBAの場合は以下のようなものがあります。
例:^ $ ? * + . | { } \ [ ] ( )
これらのメタ文字(正規表現中で意味を持つ文字)は、「\」(VBAエディターでは「¥(半角)」)でその意味を無効化(エスケープ)することができます。
例:\^ \$
VBAのメタ文字と正規表現の例
「\」はVBAのエディターでは「¥(半角)」です。
パターン | 意味 | 正規表現の例 |
^ | 文字列の先頭。 ・使用例の記事 ⇒ VBA:文字列の正規表現(3) |
^abcd |
$ | 検索対象の終わり・終端の改行文字の前。 ・使用例の記事 ⇒ VBA:文字列の正規表現(3) |
abcd$ |
\b | 単語の境界 ・使用例の記事 ⇒ VBA:文字列の正規表現(3) |
\b |
. | 任意の1文字 | a.c |
| | 「|」の左側の文字列もしくは、「|」の右側の文字列 | a(b|c)d |
? | 直前のパターンが0回または1回現れる | ab?cd |
* | 0回以上の繰り返しの出現 | ab*cd |
+ | 1回以上の繰り返し | ab+cd |
{n} | n回の繰り返し | ab{5}cd |
{n,} | n回以上の繰り返し | ab{5,}cd |
{m,n} | n回以上m回以下の繰り返し | ab{5,7}cd |
[~] | ~の値のいずれかの1文字 | ab[cde]fg |
[0-9] | 半角数字(0~9)。「0-5」なら5まで。 ・使用例の記事 ⇒ VBA:文字列の正規表現(2) |
abc[0-9] |
[A-Z] | アルファベットの大文字。「A-C」ならアルファベット順にCまで。 ・使用例の記事 ⇒ VBA:文字列の正規表現(2) |
abc[A-Z] |
[^~] | ~の値のいずれの1文字にも一致しない | ab[^cde]fg |
\w | 英数字とアンダーバー。[a-zA-Z_0-9]と同じ | ab\wcd |
\W | 英数字とアンダーバー以外の文字。[^a-zA-Z_0-9]と同じ | ab\Wcd |
\d | 半角数字(0~9)。[0-9]と同じ ・使用例の記事 ⇒ VBA:文字列の正規表現(2) |
ab\dcd |
\D | 半角数字以外。[^0-9]と同じ | ab\Dcd |
\s | 空白文字。[ \t\r\n\v\f]と同じ | ab\scd |
\S | 空白文字以外。[^ \t\r\n\v\f]と同じ | ab\Scd |
◆関連記事
実際の利用方法の例は以下の記事に書いていますので、そちらをご覧ください。
VBA:文字列の正規表現(3)指定した位置の数字、文字を変換・削除。「RegExp」の「Replace」利用
【VBA】文字列の正規表現(3)指定した位置の数字、文字を変換・削除。「RegExp」の「Replace」利用。
VBA:文字列の正規表現(2)指定した範囲の数字、文字を全て変換・削除。「RegExp」の「Replace」利用
【VBA】文字列の正規表現(2)指定した範囲の数字、文字を全て変換・削除。「RegExp」の「Replace」。指定した範囲の数字・文字をまとめて変換・削除ができます。