
He realizado una expresión regular de búsqueda de varias líneas usando Notepad++. La línea comienza con INFO y termina con un patrón de dígitos conocido. Cuando hago clic en Buscar después de escribir mi expresión regular, obtengo los resultados correctos resaltados en la ventana principal.
Para mi caso de uso, quiero find all in open documents
usar esta misma expresión regular. El problema es que cuando lo hago, la ventana de resultados de búsqueda solo muestra la primera línea de la coincidencia de varias líneas. Para que sea realmente útil, necesito que toda la coincidencia (que en mi caso resulta ser 2 líneas casi todo el tiempo) se muestre en la ventana de resultados de búsqueda. Deseo tomar el resultado de la pantalla de resultados de búsqueda y usarlo como entrada para otro proceso que está más allá del alcance de esta pregunta.
Entonces, ¿cómo muestro toda la coincidencia de varias líneas? Puedo pensar en cómo hacer esto como un programa en un lenguaje de programación o scripting, pero ¿cómo puedo hacerlo desde Notepad++?
Respuesta1
Respuesta negativa: si bien es posible buscar y seleccionar varias líneas en varios archivos configurando la opción de expresión regular ". coincide con nueva línea", el panel Buscar resultados solo mostrará la primera línea por resultado encontrado.
Este comportamiento está integrado en Notepad++ y no se puede cambiar. También miré los complementos enumerados y ninguno de ellos puede cambiarlo.
Puede solicitar esto como una solicitud de función en el Comunidad Bloc de notas++, pero no veo ninguna solución inmediata a su problema.
Respuesta2
Pruebe lo siguiente. Digamos que su documento comienza con la palabra INFORMACIÓN y termina con 999.
Tu expresión regular sería:
INFO.+?999
Para que esto funcione conLÍNEAS MÚLTIPLES, en la ventana de búsqueda, justo al lado de la marca de usoExpresión regular, hay una casilla de verificación que dice. coincide con nueva línea. Es necesario tenerlo seleccionado para que funcione.
ps Comprobé que funciona en mi Notepad++ versión 7.5.1
ps2 La búsqueda solo devuelve la primera línea de cada aparición. Entonces, si su coincidencia comienza en la línea 5, pero termina en la línea 10, se mostrará en la ventana de búsqueda que comienza en la línea 5. No puede cambiar ese comportamiento en la aplicación.
Respuesta3
Logré resolverlo en dos pasos: primer paso:
- coincidir con varias líneas
- reemplazarlo con algunosmarcay conservar información útil segundo paso:
- "buscar en el documento" = buscar líneas marcadas [ingrese la descripción de la imagen aquí][1]
[1]: ver muestra de trabajohttps://i.stack.imgur.com/ClQjU.png
Respuesta4
Hay unhackearmanera de lograr esto.
- En el cuadro de diálogo de búsqueda, vaya a la pestaña de marca.
- Haga clic en marcar todo
- Ahora haga clic en Copiar texto marcado
- Abra una nueva pestaña y luego pegue el texto copiado.
Ahora tendrás mostradas todas las líneas de cada resultado de búsqueda coincidente, solo que no estará en la Search results
ventana. Otro inconveniente es que esto funcionará sólo en el documento actual, por lo que Find All in All Opened Documents
no se cumplirá su requisito.
El siguiente gif muestra cómo realizar estos pasos en un registro del cuidador del zoológico (enlace).