¿Cómo elimino líneas sin "." en Notepad ++? [duplicar]


11

En Notepad ++, tengo muchas líneas en el formato:

abc.xyz

donde "abc" podría tener espacio o - o números.

¿Cómo elimino líneas sin "."? Entonces, si una línea no tiene ningún ".", Quiero que se elimine por completo, ni siquiera deje una línea vacía.

Respuestas:


40

¿Cómo borrar líneas sin .?

  • Menú "Buscar"> "Reemplazar" (o Ctrl+ H)

  • Establezca "Buscar qué" en ^[^\.]*\r\n

    • Puede reemplazar \r\ncon diferentes expresiones regulares EOL (Fin de línea) dependiendo de las EOL en su archivo (consulte "Tengo una EOL diferente en mi archivo, ¿qué puedo hacer?" Y "No me importa qué EOL use mi archivo , ¿qué puedo hacer? "a continuación).
  • Borrar "Reemplazar con"

  • Habilitar "Expresión regular"

  • Haga clic en "Reemplazar todo"

    Imagen

Notas:

  • Lo anterior supone que la última línea del archivo tiene una EOL final.

  • Lo anterior también se asume que se está editando un archivo de texto con EOLs de Windows, \r\n.

Antes :

abc.xyz
abcdef
abc 123.xyz
abc 123def

Después :

abc.xyz
abc 123.xyz

Tengo una EOL diferente en mi archivo, ¿qué puedo hacer?

  • El EOL de Windows es \r\n.

  • Si está utilizando archivos con una EOL diferente, puede convertirlos a EOL de Windows usando el Menú "Editar"> "Conversión EOL".

  • Si no está trabajando con EOL de Windows y no desea convertirlos, utilice lo siguiente:

    • Usar en \nlugar de \r\npara EOL de Unix / OS X

    • Uso en \rlugar de \r\npara Mac OS (hasta la versión 9) EOL


No sé ni me importa qué EOL usa mi archivo, ¿qué puedo hacer?

  • Puedes usar \Ro (?:\r\n?|\n)o en (?:\r?\n?)lugar de \r\n. Esto evita cualquier problema con las EOL realmente utilizadas en el archivo.

  • También puedes usar (?:\r?\n?|$). Esta expresión funcionará si no hay EOL en la última línea del archivo.


Otras lecturas


55
Puede usar \ R para que coincida con cualquier salto de línea.
user694733

@ user694733 ¿Por favor explique? \rno coincide con la EOL en Windows. Si elimina el, \nle quedan líneas en blanco. OP: "Quiero que se elimine por completo, ni siquiera deje una línea vacía"
DavidPostill

Mayúscula R. N ++ usa PCRE que tiene esto como una clase de caracteres especial si mi memoria me sirve bien.
user694733

@ usuario694733 Ah. OKAY. Probado y funciona.
DavidPostill

regex101.com es un mejor sitio para aprender expresiones regulares que regexexr
gato

14

La respuesta aceptada es correcta, pero no siempre tendrá expresiones regulares listas. Entonces les presento una solución más simple.

  1. Ctrl+ F- haga clic en la pestaña Marcar
  2. Establezca "Buscar qué" en .
  3. Marque la opción "Línea de marcador" (cortesía de Wrass)
  4. Modo de búsqueda = Normal
  5. Haga clic en Marcar todo -> Debería ver un círculo azul al lado de los números de línea marcados.
  6. Luego navegue al menú Buscar -> Marcador -> Eliminar líneas sin marcar.

Esta es una buena alternativa simple, sin embargo, es posible que desee mencionar que también debe marcar la opción 'Línea de marcador' en el cuadro de diálogo Marcar. De lo contrario, se eliminarán todas las líneas.
Wrass

Buen punto, mi bloc de notas lo recordaba de la última vez, así que me olvidé de eso.
Zikato

Uso regex todo el tiempo, pero aún usaría este método por su simplicidad. Descargo de responsabilidad: también utilizo mucho las diversas funciones de marcador en Notepad ++.
JPhi1618

Como no estaba satisfecho con su formato, he enviado una edición que creo que le resultará más agradable. Siéntase libre de rechazarlo o retroceder si no está de acuerdo.
jpmc26
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.