Español

Cómo eliminar saltos de línea del texto

Pega el texto en el Text Toolkit. Si desea un bloque continuo, cambie buscar y reemplazar al modo Regex, busque \s*\n\s* y reemplácelo con un solo espacio.

Si desea conservar los saltos de párrafo, utilice primero Recortar líneas, luego busque (?<!\n)\n(?!\n) y reemplácelo con un espacio. Ese patrón coincide con una nueva línea que no tiene nueva línea en ninguno de los lados (es decir, un ajuste a mitad de párrafo) y deja solas las nuevas líneas dobles entre párrafos.

¿Por qué el texto llega con saltos de línea estrictos?

Copiar de un PDF es la fuente habitual. Un PDF no tiene párrafos (tiene texto colocado en una página), por lo que la copia inserta una nueva línea donde termina una línea visual. Un párrafo que ocupaba seis líneas en la página llega como seis líneas de texto.

El correo electrónico de texto sin formato es la otra fuente común. Los clientes de correo más antiguos encapsulaban los mensajes salientes en 72 o 76 caracteres y las respuestas entre comillas conservaban esos cortes indefinidamente.

La característica distintiva es que los saltos caen a mitad de la oración, aproximadamente en la misma columna, en lugar de al final de la oración. Eso es lo que los hace mecánicamente extraíbles: los saltos de párrafo reales están separados por una línea EN BLANCO, y los saltos a mitad de párrafo no. Todo lo que sigue se basa en esa diferencia.

Mantener los párrafos: el método de un solo patrón

El patrón dice: una nueva línea que no está precedida por una nueva línea ni seguida por una. Un resumen a mitad de párrafo coincide; cada nueva línea en una ruptura doble tiene una nueva línea en un lado, por lo que ninguna coincide.

Si la herramienta rechaza el patrón con un error, su navegador no admite la búsqueda hacia atrás. En ese caso, utilice el reemplazo más simple \s*\n\s* para unir todo y vuelva a introducir los saltos de párrafo en cualquier lugar donde pegue el texto.

  1. Pulsa Recortar líneas. Esto elimina los espacios en blanco iniciales y finales de cada línea, por lo que un separador de párrafo se convierte exactamente en dos líneas nuevas en lugar de una nueva línea, un espacio perdido y otra nueva línea.
  2. Marque expresión regular.
  3. Busque (?<!\n)\n(?!\n) y reemplácelo con un solo espacio. Presione Reemplazar todo.
  4. Comprueba el recuento. Debe coincidir aproximadamente con el número de líneas ajustadas y debe ser menor que el recuento total de líneas en aproximadamente el número de párrafos.

Uniendo todo en un solo bloque

Para una cita, una consulta de búsqueda o cualquier cosa que incluya un solo campo, no es necesario proteger los párrafos en absoluto.

Modo Regex, busque \s*\n\s* y reemplácelo con un solo espacio. El \s* en ambos lados absorbe la sangría y los espacios finales al mismo tiempo, por lo que no necesita una limpieza de doble espacio por separado después.

Finales de línea de Windows y otras cosas que salen mal

  • Si un reemplazo en \n informa cero o deja caracteres perdidos, el texto tiene finales de línea de Windows. Busque \r y reemplácelo sin nada primero; eso convierte CRLF a LF y los patrones anteriores se comportan.
  • Las palabras con guiones divididas en líneas ("inter-" y luego "national") se convierten en "international" después de unirse. Busque "- " y reemplácelo con nada, pero lea primero el conteo, porque ese patrón también coincide con guiones legítimos en prosa.
  • Los espacios dobles pueden sobrevivir si una línea termina con un espacio y usaste el patrón de búsqueda hacia atrás. Encuentre dos espacios, reemplácelos con uno y ejecútelo dos veces.
  • El texto sin líneas en blanco entre párrafos no tiene señal que proteger. Ningún patrón puede recuperar el límite de un párrafo que nunca se codificó y tendrás que volver a insertarlos a mano.

Dos cosas sobre el modo de expresiones regulares de esta herramienta

Los patrones se compilan dentro de una guardia. Un patrón no válido le muestra un mensaje de error y deja el texto exactamente como estaba: un corchete abierto solitario es un estado intermedio normal al escribir y no debería destruir su trabajo.

Los patrones se compilan con la bandera global y sin las banderas multilínea o dotall. Por lo tanto, un reemplazo siempre se aplica en todas partes; el punto no coincide con una nueva línea; y ^ y $ anclan todo el texto en lugar de cada línea. Para actuar por línea, haga coincidir la nueva línea explícitamente, que es lo que hacen los patrones anteriores.

Los campos de buscar y reemplazar son entradas de una sola línea. Puede COINCIDIR una nueva línea con \n, pero no puede INSERTAR una: un \n escrito en el campo de reemplazo se inserta como una barra invertida seguida de una n. Es por eso que el método anterior nunca necesita volver a colocar una nueva línea.

Ejemplo resuelto: dos párrafos copiados de un PDF

El texto pegado tiene una pausa después de cada línea impresa y una línea en blanco entre los dos párrafos. Usando / para una nueva línea, se ve así:

"El comité se reunió el martes para revisar la propuesta presentada en marzo. Varios miembros expresaron su preocupación sobre el calendario. Una versión revisada circulará antes de la próxima reunión."

Hay cinco nuevas líneas en total: cuatro ajustes y un salto de párrafo escritos como dos nuevas líneas consecutivas. Cuatro de los cinco deberían irse.

  1. Pulsa Recortar líneas.
  2. Marque Regex, busque (?<!\n)\n(?!\n), reemplace con un espacio, Reemplace todo.
  3. Lea el recuento informado.

Resultado: La herramienta informa 3 reemplazos (los tres ajustes a mitad de párrafo) y el resultado son dos párrafos, cada uno en una línea continua, aún separados por una línea en blanco. Usar \s*\n\s* en su lugar habría reportado 4 y fusionado ambos párrafos en uno, que es la respuesta correcta para una cita y la incorrecta aquí.

Abre la herramienta

Limpiar texto en el Text Toolkit

Búsqueda y reemplazo literal y de expresiones regulares con un historial de deshacer y un recuento de reemplazos después de cada paso. Nada de lo que pegues se envía a ninguna parte.

Lo que esto no cubre

  • Esto es buscar y reemplazar, no refluir. No puede distinguir un ajuste a mitad de frase de una línea deliberadamente corta, como un bloque de direcciones, un verso o una lista con viñetas.
  • El campo de reemplazo no puede insertar una nueva línea, por lo que cualquier técnica que necesite volver a colocar saltos de línea debe terminar en otro lugar.
  • El patrón de búsqueda hacia atrás necesita un navegador que admita aserciones de búsqueda hacia atrás. Un navegador antiguo informa un error de patrón no válido en lugar de fallar silenciosamente.
  • El procesamiento se ejecuta en el hilo principal, por lo que un documento muy grande puede pausar brevemente la interfaz durante una transformación.
  • Deshacer está limitado a las últimas 50 operaciones.
  • No se guarda nada entre visitas. Recargar la página descarta tu trabajo, por diseño.