TRegEx互換モードは対応不可

TRegEx 互換用に、空文字とのマッチを非マッチとするモードの実装を行なってきました。

しかし、残念ながらクリアできない問題が2つあり、TRegEx 互換モードの対応はなかったことにさせてもらいます。

当初、「空文字とマッチしたら文字列を読み進めて再マッチすればいい」くらいに考えていました。

ところが、TRegEx はすべての”選択(|)”が空文字にマッチする場合にも非マッチとする仕様でした。

これが SkRegExp では対応できないのです。

SkRegExpは”選択(|)”について個別な処理をしていないため、「すべての”選択(|)”が空文字にマッチする場合にも非マッチ」と判別することができません。

それともう一つ。

正規表現パターン a?? を aaa にマッチさせたとき、TRegExp は aaa にマッチします。

私の理解では、空文字にマッチしない仕様なら a 一文字にマッチするのが正解のように思えるのです。

このロジックがどうしても理解できません。

以上2つの理由により、TRegEx 互換モードの対応はなくなりましたのでご了承ください。

あ、C はあると個人的に便利なので追加します。

コメントを残す

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