Estoy tratando de crear un script para realizar búsquedas difusas dentro de un búfer. La idea principal es tomar algo de entrada e insertar .\{-}entre cada par de caracteres, por ejemplo, se fooconvierte f.\{-}o.\{-}o.
Esto funciona bastante bien, pero genera muchas coincidencias no ideales. Creo que una búsqueda difusa debería producir primero las coincidencias más cortas. Considere el siguiente ejemplo:
public void put()
Hacer una búsqueda difusa para put(entonces p.\{-}u.\{-}t) coincidirá con la cadena completa public void put, pero el más corto putdentro de esa coincidencia sería más útil.
El operador no codicioso es bueno para encontrar coincidencias que terminen antes, pero necesito algo que pueda, al mismo tiempo, preferir coincidencias que comiencen más tarde. Conceptualmente, no debe ser codicioso en ambas direcciones. es posible?
fuente

Respuestas:
No hay suficientes ejemplos, pero creo que esto hace lo que quieres.
coincidiría
puten su ejemplo en lugar depublic void put. Básicamente,.*obliga al motor regex a comenzar a buscar la cadena hacia atrás, ya que.*primero consume toda la cadena y luego retrocede, para encontrar la última coincidencia dep.\{-}u.\{-}tfuente
pouty puppetpara producir dos partidos.