Tengo un bloque de texto posiblemente grande para buscar instancias de [[...]]
, donde el ...
puede ser cualquier cosa, incluidos otros corchetes (aunque no se pueden anidar; la primera instancia de ]]
después de ]]
finaliza la coincidencia).¿Es mejor usar un calificador no codicioso o un lookahead?
puedo pensar en dos formas para que coincida con este texto:
- El uso de un calificativo no expansivo:
/\[\[.+?\]\]/
- Usando una búsqueda hacia delante:
/\[\[(?:(?!\]\]).)+\]\]/
Es una opción intrínsecamente mejor que el otro, desde el punto de vista del rendimiento (yo diría que el primero es probablemente más legible)? Recuerdo haber leído que es mejor no usar calificadores no codiciosos, pero no puedo encontrar una fuente para eso ahora.
Tal vez la advertencia se debió a que la concordancia no codiciosa puede causar un gran retraso. –
Sí. El contexto era diferente, era un argumento para usar una clase de caracteres negada específica en lugar de '. *?' –