正規表現とは

 文字列の高度な操作を可能にする正規表現について、ここで簡単に説明します。

正規表現の概要

 正規表現は、文字列のさまざまな特徴を一定のパターン(文字列)として表現するものです。
 例として次のパターンがあります。

[a-e]

これは「a」「b」「c」「d」「e」の5種の文字列のほか、これらを含む「at」「net」「center」などに(文字列の一部として)マッチします。
 また、次のようなパターンも考えられます。

^[0-9]+円$

これは1文字以上の半角数字(0~9)で始まり、それに「円」が続いて終わる文字列にマッチします。つまり「0円」「50円」「627円」などの文字列にマッチします。
 これらの例のように文字列の特徴を簡潔に表現するのが正規表現で、別に用意されている各種命令と組み合わせて複雑な検索や置換を行うことができます。Accessではあまり馴染みがないかもしれませんが、さまざまなソフトウェアやプログラミング言語で利用することができ、習得すれば幅広く応用できる知識となります。近年ではGoogleスプレッドシートのワークシート関数として実装され、強力な検索・抽出・置換機能を実現しています。

Like演算子・ワイルドカードとの違い

 さて、Accessで文字列のマッチングというと、まずSQLのLike演算子とワイルドカードを用いる方法が思い浮かぶと思います。
 例えば上記の最初の例は

Like "*[a-e]*"

に相当しますし、使う記号もある程度似ています。よって正規表現とLike演算子の利用は同じものと思われる方も多いかもしれません。
 しかし実際は全く別物で、VBAの知識が若干必要となります。そのぶん機能は高く、Like演算子による検索やReplace関数による置換などよりはるかに高度な操作を実現できます。

 具体的な利用の方法とサンプルについては、以降の節で紹介していきます。