2011-03-03 160 views

Respuesta

84

Encontrar:

^[#;].* 

Reemplazar con nada. El ^ indica el inicio de una línea, el [#;] es una clase de caracteres que coincide con # o ;, y .* coincide con cualquier otra cosa en la línea.

En las versiones de Notepad ++ anteriores a 6.0, no podrá eliminar realmente las líneas debido a una limitación en su motor de expresiones regulares; el reemplazo da como resultado líneas en blanco para cada línea coincidente. En otras palabras, esto:

 
# foo 
; bar 
statement; 

se convertirá en:

 


statement; 

Sin embargo, la sustitución trabajará en Notepad ++ 6.0 si se agrega \r, \n o \r\n al final del patrón, dependiendo de qué línea que termina su archivo está utilizando, lo que resulta en:

 
statement; 
+9

Puede reemplazar líneas en blanco usando el Modo de búsqueda "Extendido" y encontrando \ r \ n \ r \ n. Si deja en blanco "reemplazar con", eliminará las líneas en blanco. Tenga cuidado, ya que esto eliminará otras líneas en blanco que no fueron creadas por su primer reemplazo. – PaulF

+4

A partir del bloc de notas ++ 6, con soporte completo de expresiones regulares PCRE, buscando^(# |;). * \ R \ n y reemplazando con blanco (con la opción de expresiones regulares habilitada por supuesto) funciona perfectamente – Tao

+0

@Tao: Gracias por el recordatorio - ¡Olvidé actualizar todas mis respuestas de Notepad ++ con el soporte 6.0! Voy a llegar a eso pronto ... – BoltClock

2

Tal vez usted debe tratar

^[#;].*$ 

^ coincide con el principio, $ final.

+0

No funcionará, [consulte scintilla] (http://www.scintilla.org/SciTERegEx.html). Se eliminan los caracteres finales de la línea. – stema

5

Es posible, pero no directamente.

En resumen, vaya a la búsqueda, use su expresión regular, marque "marcar línea" y haga clic en "Buscar todo". Resulta en marcadores para todas esas líneas.

En el menú de búsqueda hay un punto "borrar líneas marcadas" voila.

he encontrado la respuesta aquí (la respuesta correcta es la segunda, no es el aceptado!): How to delete specific lines on Notepad++?

+0

+1 para el enlace –

5

Como otros han señalado, en Notepad ++ 6.0 y versiones posteriores, es posible utilizar el "reemplazar" característica para eliminar todas las líneas que comienzan con ";" o "#".

Tao proporciona una expresión regular que sirve como punto de partida, pero no tiene en cuenta el espacio en blanco que puede existir antes del ";" o el carácter "#" en una línea dada. Por ejemplo, líneas que comienzan con ";" o "#" pero son "tabbed-in" no se eliminarán cuando se usa la expresión regular de Tao, ^(#|;).*\r\n.

La expresión regular de Tao no tiene en cuenta la advertencia mencionada en la respuesta de BoltClock, ya sea: variaciones en los caracteres de nueva línea en los sistemas.

Una mejora consiste en utilizar ^(\s)*(#|;).*(\r\n|\r|\n)?, que representa el espacio en blanco y las variaciones de caracteres de la línea nueva. Además, el ? posterior trata los casos en los que la última línea del archivo comienza con # o ;, pero no termina con una nueva línea.

Para los curiosos, es posible discernir qué tipo de carácter de nueva línea se usa en un documento dado (y se puede usar más de un tipo): Ver -> Mostrar símbolo -> Mostrar fin de línea.

+0

La expresión regular que sugiere parece fallar al ubicar la última línea del documento (si es una línea relevante). – maja

+1

Buena captura, @maja! Intente agregar un '?' Al final, así: '^ (\ s) * (# |;). * (\ R \ n | \ r | \ n)?'. Actualizaré la respuesta original en consecuencia. ¡Gracias! –

-1

En Notepad ++, puede usar la pestaña Marcar en Buscar diálogo para marcar todas las líneas que coincidan con su consulta, que pueden ser regulares o normales (comodín).

A continuación, use Buscar> Marcador> Eliminar líneas marcadas.

+0

** stema ya ha escrito la misma respuesta, pero su respuesta aquí tiene mucha menos información. Si bien agregar nuevas respuestas a preguntas antiguas puede ser bueno, solo son útiles si proporcionan información nueva. Las respuestas que simplemente repiten otras respuestas no tienen ningún valor, son solo desorden. – AdrianHHH

Cuestiones relacionadas