役に立ちそうもないTips移転版

俺得なTipsを書き連ねるだけのブログ。

VBScriptのRegExp SubMatchesの罠

VBAで気軽に使える正規表現ライブラリなんだが、SubMatchesコレクションにはどうも変な癖がある模様。
正規表現の()内が、「全体がマッチしたからと言ってマッチするかどうか分からない」(0or1の出現とか)場合、その部分に相当するSubMatchesの要素は
空文字列ではなく、ヌルポインタ(VBAの世界だとvbNullString)が返ってくるらしい。
(で、これをSQLiteへ突っ込もうとするとNOT NULL制約に引っかかるという……VBAのラッパがStrPtr()の値をSQLiteへ渡してて、
SQLite側では「ヌルポインタをTEXTにバインドした場合はNULL値のバインドとして扱う」という仕様なもんだからorz)
ということでそんな正規表現書いてSubMatchesを取る場合はとりあえず空文字列を結合しておくのが無難。