バッファ内であいまい検索を実行するためのスクリプトを作成しようとしています。主なアイデアは、何らかの入力を取り.\{-}
、すべての文字のペアの間に挿入することです。たとえば、にfoo
なりf.\{-}o.\{-}o
ます。
これはかなりうまく機能しますが、理想的ではない多くの一致が生じます。あいまい検索では、最短の一致が最初に得られると思います。次の例について考えてみます。
public void put()
put
(so、p.\{-}u.\{-}t
)のあいまい検索を実行すると、文字列全体に一致しますpublic void put
が、put
その一致内で短い方が便利です。
貪欲でない演算子は、早く終了する一致を見つけるのに適していますが、同時に開始する一致を優先できるものが必要です。概念的には、両方向で貪欲ではないはずです。これは可能ですか?
参照:stackoverflow.com/q/15191291(残念ながら質問に対する回答はありません)
—
Doorknob
@Doorknob、答えはありませんが、それは良い点をもたらします:Regexは文字列の途中から検索を開始しません。仕事を終わらせるために、いくつかのVimScriptを含める必要があるかもしれません。(長い)一致を逆にして、逆のパターンを検索するというアイデアを模索しています。
—
tommcdo 2015
Tim Popeは本日vim-haystackをリリースしました。必要なものに似ています。多分あなたはそれからいくつかのインスピレーションを得たり、多分それを使用することさえできます。
—
tokoyami 2015
パターンを満足させながら、できるだけ早く試合を開始し、できるだけ早く試合を終了させたいと思います。
—
tommcdo 2015
いわゆる近似文字列照合アルゴリズムを確認する必要があります。これらは、正規表現よりもファジーファインダーを実装するためのより適切なツールです。
—
toro2k