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

524
Vistas
Regex, ¿cómo detectar el valor en llaves dobles?

Lo siento, no puedo hablar inglés :(

Escribo Suplantar tengo una expresión regular

 ({{([']).*\2}})

necesita expresiones regulares para detectar lo que hay en un rectángulo

ingrese la descripción de la imagen aquí

Lo necesito rígidamente entre {{' - '}} porque puede haber cualquier carácter entre las comillas (por ejemplo, uno { )

es mejor usarlo \1 porque la expresión regular es más larga

Gracias por la ayuda. Saludos

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

0

Esto te puede funcionar:

 /\{\{'((?:(?!\{\{').)*?)'\}\}/g
  • \{\{' - comienza haciendo coincidir {{' .
  • ( ... ) - si está escribiendo un motor de plantillas, probablemente le importe lo que hay dentro de las llaves y comillas. Esto captura la cadena dentro de las comillas para que pueda usarla.
  • (?: ... ) - un grupo que no captura (el valor aquí no se utilizará).
  • (?!\{\{'). - coincide con cualquier cosa, excepto si estamos viendo otro {{' .
  • (?!\{\{').)*? - *? es una coincidencia perezosa, por lo que nos detendremos en el primer '}}
  • y finalmente, el cierre '}}

como código, se verá así: incluí una función para establecer el valor reemplazado, porque normalmente eso es lo que haría en un motor de plantilla:

 let s = "n {{'a{123456789}'}} n {{\"a{123456789}\"}} n {{'a{1234{{'a{12345{{'a{123456789}'}}6789}'}}56789}'}} "; s = s.replace(/\{\{'((?:(?!\{\{').)*?)'\}\}/g, (wholeMatch, capturedKey) => { console.log('captured key:', capturedKey); return "REPLACED " + capturedKey; }); console.log(s);

si desea admitir comillas dobles, se vuelve un poco más complicado:

 s = s.replace(/\{\{(["'])((?:(?!\{\{["']).)*?)\1\}\}/g, (wholeMatch, quote, capturedKey) => { ... } );
about 4 years ago · Juan Pablo Isaza Denunciar

0

Prueba esto: /(?<={{')(?!.+?{{)[^']+/gm

Básicamente, esto busca el {{' que no tiene ningún otro {{ delante de él, entonces, coincide con todo hasta el primer ' .

Prueba aquí: https://regex101.com/r/rw6kkP/2

 var myString = `{{'a{content 1}a'}} {{'a{every{{'a{everysign}a'}}sign}a'}} {{'a{every{{'a{every{{'a{inside content}a'}}sign}a'}}sign}a'}} `; var myRegexp = /(?<={{')(?!.+?{{)[^']+/gm; console.log(myString.match(myRegexp)) // [ "a{content 1}a", "a{everysign}a", "a{inside content}a" ]

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