Estou tentando criar um script para executar a pesquisa difusa dentro de um buffer. A idéia principal é pegar alguma entrada e inserir .\{-}
entre cada par de caracteres, por exemplo, foo
torna-se f.\{-}o.\{-}o
.
Isso funciona bastante bem, mas gera muitas correspondências não ideais. Acho que uma pesquisa difusa deve produzir as correspondências mais curtas primeiro. Considere o seguinte exemplo:
public void put()
Fazer uma pesquisa difusa por put
(então, p.\{-}u.\{-}t
) corresponderá a toda a cadeia public void put
, mas a menor put
dentro dessa correspondência seria mais útil.
O operador não ganancioso é bom em encontrar correspondências que terminam mais cedo, mas eu preciso de algo que possa, ao mesmo tempo, preferir correspondências que começam mais tarde. Conceitualmente, não deve ser ganancioso nas duas direções. Isso é possível?