Cómo convertir CRLF en una línea vacía a \n sin afectar otro código CRLF en otros lugares

Cómo convertir CRLF en una línea vacía a \n sin afectar otro código CRLF en otros lugares

Estoy escribiendo una mininovela de historia familiar y he estado trabajando en ella en una PC diferente.

Utilicé una versión antigua de UltraEdit para mi procesador de textos. Pero no era muy compatible con Windows después de XP. Leí una publicación en algún lugar sobre cómo hacerlo funcionar en Windows 7 que funcionó y que sobrevivió a una transferencia de datos a mi computadora portátil con Windows 10. Entonces un día falló y no pude arreglarlo. Entonces, muchos de mis amigos me dijeron que probara Notepad++, afirmando que era mejor que UltraEdit 13. Intenté trabajar en Notepad++, pero el formato no funcionaba. En lugar de que mis párrafos estuvieran todos en una línea y envueltos en el borde de la pantalla automáticamente, luego una línea en blanco entre ellos, como lo escribí, todo estaba dividido. Activé "Mostrar símbolos" y en su lugar un CRLF al final de cada línea de párrafo, seguido de un CRLF para la línea vacía, había varios CRLF en él. Por cierto, aproximadamente un 200% más de lo que quería.

Intenté escribir algo de texto aquí para mostrar cómo se ve en Notepad++, pero este tablero de mensajes lo corrige para que luzca como debería. Así que no puedo mostrarte cómo se ve. Sin embargo, encontré esto aquí en alguna parte, haga una búsqueda RegEx\replace para \R(?!\R) y eso corrige las líneas en los párrafos. Sin embargo, quería esa línea vacía entre párrafos, porque los agrego sin pensar en ello. Entonces, ahora que solo hay un CRLF por párrafo, ¿hay una búsqueda RegEx/reemplazar para agregar un \n al final de cada línea con texto para que esa línea se cree entre los párrafos ya escritos? Esto me está volviendo loca. Pero no puedo permitirme el lujo de actualizar UltraEdit. y probablemente no me gustaría la nueva versión de todos modos...

Respuesta1

No estoy seguro de haberlo entendido bien, desea eliminar los saltos de línea solo si no están precedidos ni seguidos por otro salto de línea.


Esto hace el trabajo:

  • Ctrl+H
  • Encontrar que:(\R\R)\R*|\R
  • Reemplazar con:$1
  • SELECCIONAR Expresión regular
  • Replace all

Explicación:

(\R\R)      # 2 linebreaks (i.e. paragraphs spacing)
\R*         # 0 or more linebreaks, optional
|           # OR
\R          # a single linebreak

Reemplazo:

$1          # content of group 1, 2 linebreaks

Respuesta2

Fácil de arreglar en Notepad++:

  • Presione CtrlHpara acceder al cuadro de diálogo Buscar/Reemplazar.

Reemplazar doble EOL

  • ColocarModo de búsquedaaExtendido.

  • Entrar \r\n\r\nenEncontrar que:, es decir, un par de caracteres CR y LF.

  • Entrar \r\n\enReemplazar con:.

  • Hacer clicReemplaza todo.

    Cada vez que se hace clic en ese botón, se reduce el número de pares CR/LF duplicados.a lo largo de todo el documento.Esto crea unsolterosalto de línea al final de cada párrafo. Cambie los argumentos anteriores adobleEspaciado entre líneas.

Si quieres consistentedoble lineaespaciado

  • Cambiartodoasolterointerlineado, como se muestra arriba.
  • Luego busque todo \r\ny reemplácelo con \r\n\r\n,una vez.

Incluso hay funciones de búsqueda más avanzadas disponibles usandoExpresión regular.

información relacionada