Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

289
Vistas
Uso de expresiones regulares en replace () para unir palabras divididas en un texto

Tengo estas oraciones de muestra en un archivo de texto sin formato (utf-8):

 today is an interest- ing day

el "-" en la primera línea es seguido solo por \n (ya eliminé todo \r del archivo, para tratar uniformemente con diferentes fuentes) Me gustaría envolver las 2 líneas en 1 línea, debido a "- ", lo que significa que la palabra anterior se ha truncado y continúa en la siguiente línea. Para unir este tipo de líneas, lo que he intentado es algo así como:

 text.replace(/[\n-]/g, "")

pero no parece estar funcionando. ¿Cuál es la forma correcta de lograr esto?

Me gustaría poder lidiar con estos dos finales posibles (o situaciones similares que podría anticipar):

 interest-\n interest- \n (possible blanks inserted before \n)
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Puedes usar

 text.replace(/\b-\s*\n\b/g, "") text.replace(/\b-[^\S\r\n]*\n\b/g, "")

Vea la demostración de expresiones regulares . Detalles :

  • \b - un límite de palabra
  • - - un guion
  • \s* - cero o más espacios en blanco / [^\S\r\n]* - cero o más espacios en blanco horizontales (compatible con terminaciones CRLF, CR y LF)
  • \n - un carácter de nueva línea
  • \b - un límite de palabra.

Vea la demostración de JavaScript:

 console.log( "today is an interest- \ning day".replace(/\b-\s*\n\b/g, "") ); console.log( "today is an interest-\ning day".replace(/\b-\s*\n\b/g, "") );

Un patrón compatible con Unicode que busca solo letras en ambos extremos puede parecerse a text.replace(/(?<=\p{L}\p{M}*)-[^\S\r\n]*\n(?=\p{L})/gu, "") , donde (?<=\p{L}\p{M}*) busca una letra + diacríticos opcionales antes - y (?=\p{L}) busca una letra después de una nueva línea. Vea la demostración de expresiones regulares .

about 4 years ago · Juan Pablo Isaza Denunciar

0

Hay tres cosas incorrectas en su expresión regular para este uso:

  1. Tienes la nueva línea antes de la -

  2. El [] significa una lista de caracteres para coincidir con al menos uno de ellos

  3. Debe agregar \s para que coincida con los espacios en blanco

Así que prueba esto:

 text.replace(/-\s*\n/g, "")
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda