Я пытаюсь создать скрипт для выполнения нечеткого поиска внутри буфера. Основная идея состоит в том, чтобы взять некоторый ввод и вставить .\{-}
между каждой парой символов, например, foo
становится f.\{-}o.\{-}o
.
Это работает довольно хорошо, но дает много неидеальных совпадений. Я думаю, что нечеткий поиск должен сначала дать самые короткие совпадения. Рассмотрим следующий пример:
public void put()
Выполнение нечеткого поиска put
(так, p.\{-}u.\{-}t
) сопоставит всю строку public void put
, но более короткое put
в этом сопоставлении будет более полезным.
Нежадный оператор хорош для поиска совпадений, которые заканчиваются раньше, но мне нужно что-то, что может в то же время предпочесть совпадения, которые начинаются позже. Концептуально, он не должен быть жадным в обоих направлениях. Это возможно?