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

263
Vistas
RegEx: reemplaza dos caracteres de grupo globales de una cadena

¿Hay una forma más elegante/mejor de realizar el reemplazo a continuación? Quiero separar AM y PM de todas las palabras y agregar una coma para que se represente de la siguiente manera

 Monday, AM Monday, PM Wednesday, AM Wednesday, PM Thursday, AM Friday, AM Friday, PM 

 <script> let str = "MondayAM,MondayPM,TuesdayAM,WednesdayAM,ThursdayAM,ThursdayPM"; str = str.replace(/,/g,'\n').replace(/AM/g,", AM").replace(/PM/g,", PM") console.log(str); document.write("<pre>"+str+"</pre>") </script>

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

0

Para ambos formatos de datos con una coma o un espacio:

 ([^\s,]+)([AP]M)\b[, \t]*

Explicación

  • ([^\s,]+) Grupo de captura 1, emparejar 1+ caracteres que no sean espacios en blanco que no sean una coma
  • ([AP]M) Grupo de captura 2, haga coincidir AM o PM
  • \b Un límite de palabras para evitar una coincidencia parcial de palabras
  • [, \t]* Coincide con espacios, tabulaciones o comas opcionales

Demostración de expresiones regulares

 const regex = /([^\s,]+)([AP]M)\b[, \t]*/g; const str = `MondayAM MondayPM TuesdayAM WednesdayAM ThursdayAM ThursdayPM MondayAM,MondayPM,TuesdayAM,WednesdayAM,ThursdayAM,ThursdayPM `; const subst = `$1, $2\n`; console.log(str.replace(regex, `$1, $2\n`));


Otra variación que coincide solo con los caracteres iniciales A-Za-z y suponiendo que solo hay una coma como separador:

 ([AZ][az]+)([AP]M)\b,?

Demostración de expresiones regulares

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede usar el reemplazo de grupo, reemplazar AM o PM , con , $1 , $1 se refiere a AM o PM que se encuentra en el texto.

 let str = "MondayAM MondayPM TuesdayAM WednesdayAM ThursdayAM ThursdayPM"; str = str.replace(/(AM|PM)/g, ", $1") console.log(str);

about 4 years ago · Juan Pablo Isaza Denunciar

0

Sí, puedes hacerlo en una sola expresión regular. Como está haciendo lo mismo con "AM" y "PM", puede escribir una expresión regular que capture cualquiera y use la expresión $N en lugar del valor constante, para devolver el grupo capturado a la cadena de salida.

También puede reemplazar "," con una nueva línea en la misma expresión. (Utilicé (,|$) que significa coma o final de cadena, porque no hay coma después de la última entrada).

 <script> let str = "MondayAM,MondayPM,TuesdayAM,WednesdayAM,ThursdayAM,ThursdayPM"; str = str.replace(/([AP]M)(,|$)/g,", $1\n") console.log(str); document.write("<pre>"+str+"</pre>") </script>

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