Estoy tratando de usar expresiones regulares para encontrar cosas incompletas que comiencen con {{ .
Intenté verificar si hay lugares en la cadena que comiencen con {{ y tengan una Z después, pero no han terminado ( }} ). Lo que intento siempre devuelve nulo.
string = 'Hello {{name}}, you are {{a'; console.log(string.match(/^({{)?[az]:[AZ]$/g)); Mi resultado esperado sería {{a en este caso porque {{name}} está completo. Cualquier ayuda realmente apreciada.
Lo único que tendrá entre ellos es . es decir: {{name.forename}} {{name.lastname}}
Puede usar el "mejor truco de expresiones regulares" , en este caso, haga coincidir todos los fragmentos de caracteres de palabras entre llaves dobles o haga coincidir y capture cualquier {{ seguido de cero o más caracteres de palabras:
Array.from(text.matchAll(/{{\w+(?:\.\w+)*}}|({{(?:\w+(?:\.\w+)*)?)/g), x => x[1]).filter(Boolean)Aquí,
{{\w+(?:\.\w+)*}} - {{ , uno o más caracteres de palabras, cero o más secuencias de un . y uno o más caracteres de palabra, }}| - o({{(?:\w+(?:\.\w+)*)?) - Grupo 1: {{ y una aparición opcional de uno o más caracteres de palabras y cero o más secuencias de un . y uno o más caracteres de palabra.