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:文字列の正規表現(1)パターンに一致するか否かを評価する方法

【VBA】文字列の正規表現。入力した文字列が、指定したパターンにマッチするか否かを評価します。

VBA:半角数値かどうか判定する方法(RegExpオブジェクト)

【VBA】「RegExpオブジェクト」を利用して半角数値かどうか判定する方法

VBA:文字列の正規表現(3)指定した位置の数字、文字を変換・削除。「RegExp」の「Replace」利用

【VBA】文字列の正規表現(3)指定した位置の数字、文字を変換・削除。「RegExp」の「Replace」利用。

VBA:文字列の正規表現(2)指定した範囲の数字、文字を全て変換・削除。「RegExp」の「Replace」利用

【VBA】文字列の正規表現(2)指定した範囲の数字、文字を全て変換・削除。「RegExp」の「Replace」。指定した範囲の数字・文字をまとめて変換・削除ができます。




おすすめ