2012年4月21日土曜日

[ExcelVBA] 正規表現のてすと


正規表現に不慣れなうちや、複雑な正規表現を書く時に何度もエディターを立ち上げて書きなおして実行の繰返しをするのは若干めんどくさかったりしますよね。そこで、正規表現をてすとするシートを作成してみました。

ファイルを開いた下記のシートが表示されます。

正規表現欄に正規表現を入力します。
大文字小文字を無効にしたい時は、IgnoreCaseチェックボックスにチェックを付けてください
繰返しマッチさせたい時は、Globalチェックボックスにチェックを付けてください


正規表現を書いたらマッチさせたい文字やマッチしたら困る文字を「テスト文字列」の
2つ下のセルに書いていきます。記載後、「正規表現のテスト」ボタンを押すことで結果が表示されます。


実際の使用例を上げてみます。
0:00~23:59分までを表示する正規表現をテストしてみます。
まずE2セルに「^(1?[0-9]|2[0-3]):([0-5][0-9])$」を書きます。
今回のテストでは、IgnoreCaseやGlobalは不要なのでチェックを入れません。
下の図のようになります。


あとは、「正規表現のテスト」を押すのみです。
実行結果は、下図の通り。


テスト文字列に、ヒットした結果が右隣りセルに表示されます。
正規表現全体にマッチした結果が[全体]というタグが表示されます。
括弧部分にマッチした結果は、[Sub]というタグが表示されます。
不要な場合は、(?: でも付けてメモリに記憶させないようにするとよいと思います。
複雑な正規表現の場合、またあとで書き直すのはめんどくさいと思うので、とっておきたい正規表現があれば
「保管シートに保存しておく」ボタンを押すと保管シートの方に正規表現内容がコピーされます。


保管シートを開くと正規表現列に複製されてます。
何の正規表現だったか、わかりやすくするためにメモ列にメモを
記載しておくと後で見た際に理解しやすくなると思います。

保管されたデータを再度ためしたくなった時は、試したい正規表現のセルを
アクティブにして、アクティブセルの正規表現を試すボタンを押してください。
練習シートの方に表示されます。

ダウンロード先は、こちら→https://docs.google.com/open?id=0B_9e7wIj6KvuMFZQT2dBRmlYcXM

0 件のコメント: