SkRegExp のポジショニング

気が付いたら SkRegExp の更新が止まったまま年を越し4月。

SkRegExp からバグが消えたわけではないが、報告がないのはバグがないのと同じと思っているので放置。

最近は、SkRegExp の開発より SkRegExp を使ったアプリを作っている。主にマクロの処理に使っている。

かなり凝ったマクロなので正規表現が役に立つ。

そこで強く感じたこと。

「正規表現は文字化けである!」

ソースコードの中に正規表現が出てくると、自分で書いたものなのにわけがわからない。

「これは何してんだっけかな??」とそこで止まってしまう。

ただでさえわかりにくいのに、最近の正規表現ときたら先読みだ、後読みだ、再帰だ、とさらに輪をかけてわかりにくくなっている。

私はいわゆる先進的パターンを使うのは止めた。

理由は2つ。

一つは読みにくいこと。ただでさえ正規表現はわかりにくいのだ。

もう一つは、先読み(後読み)より、Pos 関数で必要な位置を検索した後に正規表現を使った方が速いこと。

多分、ほとんどのプログラム言語でそうだと思う。

私は何でもかんでも正規表現で済まそうという正規表現原理主義とは一線を画したい。

とか言いながら私自身「あれも、これも、それもできます」的正規表現ライブラリを作っているわけだが。

正直に告白すると、今私が使っているのは、SkRegExp の正規表現からいわゆる先進的なパターンを省いて軽くしたもの。

このライブラリは SkRegExp2 と言う名前にしているが、2と言うと普通は機能が増えるものだが逆に減っているのがユニークだと思う。

DelphiXEで正規表現が正式にサポートされた今、同じような重量級の正規表現ライブラリは必要ない。

むしろ、軽くて速い方が有用かと思う。

SKRegExpのポジショニングはこのあたりが適当かな?

ちなみに、SkRegExp については PCRE との互換性を重視した方が良さそうな感じなので時間が出来たらそうしたい。

特に再帰パターンのマッチ結果が PCRE と SkRegExp で異なるのは問題だと思うので。

なお、仕様がコロコロ変わるのは私の趣味の問題なのでお許し願いたい。

コメントを残す

メールアドレスが公開されることはありません。