|
>でも、検索に使われる正規表現は最長一致が基本というのは別に秀丸に限った話で
>はなく、「正規表現とはそういうもの」としかいえないです。
長年の伝統で定着しているからそうですね。
MIFES の「最短一致」はそのエディタのローカル・ルールです。
「それなりの見解ではありますが」
機能強化競争のあるPerl / .NET ではそういうのもありますが
使いこなしは、さらに習熟が必要です。
●エディタの対話操作中では使えるか?
regex には、ほかにも次の機能があります。 ( .NET スクリプトのヘルプ)
最短一致の量指定子 (??、*?、+?、{n,m}?)。これらの量指定子は、バックトラッキ
ング エンジンに対し、繰り返しの回数が最も少ない文字列を最初に検索するように
指示します。逆に、通常の最長一致の量指定子は、繰り返し回数の最も多い文字列を
最初に検索しようとします。
肯定先読み。この機能により、バックトラッキング エンジンは部分表現と一致する
文字列を見つけた後で、テキスト内の同じ位置に戻ることができます。同じ位置から
複数のパターンを確認しながらテキスト全体を検索する場合に便利です。
否定先読み。この機能により、部分表現に一致する文字列が見つからなかった場合の
み、表現に一致できるようになります。ある文字列を除外する表現の方が、含める表
現よりも単純になることが多いので、この機能は検索を簡略化する場合に特に力を発
揮します。たとえば、" non" で始まらない単語を表す表現を記述するのは簡単では
ありません。
条件付き評価。この機能により、エンジンは直前の部分表現検索の結果に従って、複
数の代替パターンを使用した検索を実行できます。そのため、より強力な前方参照が
可能になります。たとえば、部分表現で左かっこをキャプチャした後に、右かっこを
検索できます。
非バックトラッキング部分表現。最長一致部分表現とも呼ばれます。この機能により、
バックトラッキング エンジンは、部分表現と最初に一致した文字列だけを確実に検
索できるようになります。この場合、表現は、部分表現を含む表現とは関係ないよう
に処理されます。この構成体を使用しない場合は、より大きな正規表現によるバック
トラッキング検索時に、部分表現の動作が変化する可能性があります。
右から左への一致。この機能は、左から右ではなく右から左に向かって検索する場合
や、パターンの左側ではなく右側で検索を開始した方が効果的な場合に便利です。
肯定/否定後読み。先読みと似ています。この正規表現エンジンを使用すると完全な
右から左への一致を実行できるので、制限のない後読みが可能になります。
|
|