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

243
Vistas
Expresión regular que encuentra todas las coincidencias de ${cualquier expresión}

La siguiente expresión regular debe encontrar todas las coincidencias de ${any expression} , el código es el siguiente:

 const reg= /\$\{[^]+\}/g let txt= '`${i + " test"} RESULT ${2 + 4} now ${i} hi`' let result= [...txt.matchAll(reg)]; console.log(result)

Como notarás, el resultado es que extrae casi toda la cadena, la operación correcta debería imprimir en la consola un arreglo de 3 elementos que contendría la ${any expression}

El siguiente caso muestra un error que se genera si uso: [^}]

 const reg= /\$\{[^}]+\}/g let i= "some" let txt= `${i + " test"} RESULT ${2 + 4} now ${i + "}" } hi` let txtString= '`${i + " test"} RESULT ${2 + 4} now ${i + "}" } hi`' let result= [...txtString.matchAll(reg)]; console.log(result) console.log(txt)

la expresión ${i + "}" } es válida en JavaScript, por lo que la expresión regular debería devolver [${i + "}" }, other matches] pero en el ejemplo que se muestra devuelve

 ${i + "}
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Si puede describir la sintaxis del token dentro ${...} , también puede usar una expresión regular.

Si asumimos que

  • El partido comienza con ${
  • Los tokens en el interior se pueden separar con cero o más espacios en blanco
  • Los tokens están separados por los operadores + , - , * o /
  • Los tokens son cadenas de caracteres de palabras (letras, dígitos, guiones bajos) o literales de cadena entre comillas dobles ( "...\"...\\..." )
  • El partido termina con }

A continuación, puede utilizar

 const reg= /\${\s*(?:\w+|"[^"\\]*(?:\\[^][^"\\]*)*")(?:\s*[-+\/*]\s*(?:\w+|"[^"\\]*(?:\\[^][^"\\]*)*"))*\s*}/g

Vea la demostración de expresiones regulares .

Vea la demostración de JavaScript:

 const token = '(?:\\w+|"[^"\\\\]*(?:\\\\[^][^"\\\\]*)*")'; const op = '[-+/*]'; const reg= new RegExp(String.raw`\${\s*${token}(?:\s*${op}\s*${token})*\s*}`, 'g'); let i= "some" let txt= `${i + " test"} RESULT ${2 + 4} now ${i + "}" } hi` let txtString= '`${i + " test"} RESULT ${2 + 4} now ${i + "}" } hi`' let result= [...txtString.matchAll(reg)]; console.log(result) console.log(txt)

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