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

151
Vistas
¿Cómo puedo mejorar mi cadena de expresiones regulares y la cadena de reemplazo para obtener lo que necesito como salida?

Quiero usar expresiones regulares para detectar todos los caracteres de nueva línea (\ n) que los usuarios colocan por error. Por ejemplo

 # abcd abcd abcd abcd efgh efgh efgh efgh ## ijk ijk ijk ijk ijk ijk lmn lmn lmn # opq opq opq opq rst rst rest rst

Para ser corregido a lo siguiente

 # abcd abcd abcd abcd efgh efgh efgh efgh ## ijk ijk ijk ijk ijk ijk lmn lmn lmn #opq opq opq opq rst rst rest rst

Estoy tratando de usar esta cadena de expresiones regulares:

 \s*\n+[\s]*[^#]+

para ser reemplazado por "" (cadena en blanco)

es decir. Encuentra un carácter \n que

  1. Puede o no tener varios espacios antes.
  2. Puede ir seguido de varios espacios.
  3. Pero el espacio que sigue a \n no debe tener un # después. P.ej. \n # . Porque # siempre debe comenzar una nueva línea, y si # también se incluye y se reemplaza por "" , comenzará a aparecer en la misma línea que la anterior.

La respuesta después de reemplazar con \n es esta, que no se desea:

 # abcd abcd abcd abcdfgh efgh efgh efgh## ijk ijk ijk ijk ijk ijkmn lmn lmn# opq opq opq opqst rst rest rst

¿Cómo puedo mejorar mi cadena de expresiones regulares y la cadena de reemplazo para obtener lo que necesito como resultado?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Puede usar esta expresión regular:

 (?:\s*\n)+\s*(?!\s*#)|^\s+|[ \t]*$

Demostración RegEx

Código:

 const s = `# abcd abcd abcd abcd efgh efgh efgh efgh ## ijk ijk ijk ijk ijk ijk lmn lmn lmn # opq opq opq opq rst rst rest rst `; var r = s.replace(/(?:\s*\n)+\s*(?!\s*#)|^\s+|[ \t]*$/mg, ''); console.log(r);

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puedes probar con eso:

 ^[ \t]*([#]+[^\n]+)\n[ \t]*([^#\n]+.*?)\n

y reemplaza por esto:

 $1$2

Manifestación

 const regex = /^[ \t]*([#]+[^\n]*?)[ \t]*\n[ \t]*([^#\n]+.*?)\n/gm; const str = `# abcd abcd abcd abcd efgh efgh efgh efgh ## ijk ijk ijk ijk ijk ijk lmn lmn lmn # opq opq opq opq rst rst #rest rst `; const subst = `$1$2`; const result = str.replace(regex, subst); console.log(result);

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