SkRegExp version 1.0 に追加した機能

SkRegExp version 1.0 のトピックは照合エンジンの書き直しなので、追加した新しいメタ文字は g くらいです。
今日は、g の使い方を紹介します。書式は以下のとおり。


g

g は、グループ名、またはグループ番号で指定した正規表現を実行します。


(?<foo>abc...def)g<foo>

これは次の正規表現と同じ意味です。


(?<foo>abc...def)abc...def

g を使えば正規表現が短くなり、見通しが良くなります。

また、g は自分自身を呼び出す再帰ができます。

たとえば、次の正規表現を使えば括弧の対応が判定できます。


(?<foo>(g<foo>*))

この正規表現は、以下のカッコにマッチします。

()⇒マッチします。
(()⇒マッチしません。

このアイデアは Perl からではなく、PHP5(鬼車)から借用しました。

ちなみに、PHP5は再帰でネストしたグループの参照ができますが、SkRegExpはまだ対応していませんのであしからず。

コメントを残す

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