Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

234
Visualizações
no se pueden extraer variables de una muestra dada

Tengo una cadena de muestra de la que tengo que extraer valores. Muestra dada:

 {#-- important parameters #} {#@@ { 'var1': { 'title':'blah blah', 'type':'text', 'value':'def. text', 'maxlength':10 }, 'var2': { 'title':'blah blah', 'type':'number', 'value':10, 'min':1, 'max':100 } } #} {#@@ { 'var3': { 'title':'blah blah', 'type':'range', 'value':'3.0', 'min':1, 'max':10, step: '0.1' } } #} {#-- normal parameters #} {#@@ { 'var4': { 'title':'blah blah', 'type':'text', 'value':'def. text', 'required':'false' } } #} {{Variable_1}} {{Variable_2}} {{Variable_3}}

Quiero extraerlos como se indica a continuación:

1) {#-- parámetros importantes #} a "parámetros importantes" - Regex que solo extraerá de este {#-- #}

2)

 {#@@ { 'var1': { 'title':'blah blah', 'type':'text', 'value':'def. text', 'maxlength':10 }, 'var2': { 'title':'blah blah', 'type':'number', 'value':10, 'min':1, 'max':100 } } #} to { 'var1': { 'title':'blah blah', 'type':'text', 'value':'def. text', 'maxlength':10 }, 'var2': { 'title':'blah blah', 'type':'number', 'value':10, 'min':1, 'max':100 } }

--- expresión regular que solo extraerá de este {#@@ #}

actualmente usando:

  1. /[^{\#\-]+(?=#\})/g para estas plantillas {#-- parámetros normales #} --- está extrayendo valores de ambos patrones, necesito analizar un patrón a la vez.

  2. /[^#@@]+(?=#\})/g para estas plantillas

    {#@@ { 'var1': { 'título':'bla, bla', 'tipo':'texto', 'valor':'def. text', 'maxlength':10 }, 'var2': { 'title':'blah blah', 'type':'number', 'value':10, 'min':1, 'max':100 } } #}

--- está extrayendo valores de ambos patrones, necesito analizar un patrón a la vez

Cualquier ayuda será muy apreciada. Gracias

about 4 years ago · Santiago Gelvez
1 Respostas
Responde à pergunta

0

Una expresión regular no puede analizar dinámicamente una cadena de caracteres. Me explico: no es posible capturar un número de grupos dinámicamente variable.

Sin embargo, esta expresión regular puede coincidir con el grupo "título" y el primer grupo "parámetros":

 / {#--\s+(.*?)\s+#}\s+?{#@@\s+((?:.|\n)+?)\s+#} /gm

Si desea hacer coincidir todos los {#@@ XXX #} grupos, debe conocer de antemano el número máximo de casos posibles. Se puede hacer con una expresión regular como esta (en el caso de un máximo de dos parámetros):

 / {#--\s+(.*?)\s+#}\s+?{#@@\s+((?:.|\n)+?)\s+#}(?:\s+?{#@@\s+((?:.|\n)+?)\s+#})? /gm

En caso contrario, deberás hacerlo en dos pasos:

  • capturar todos los {#@@ XXX #} por {#-- XXX #} en un grupo global
  • dividiendo este grupo por {#@@ XXX #} partes.

Para una explicación más detallada, la primera expresión regular que se muestra arriba se puede dividir en dos partes:

  • {#--\s+(.*?)\s+#} por capturar {#-- XXX #} en el group(1)
  • {#@@\s+((?:.|\n)+?)\s+#} por capturar {#@@ XXX #} en el group(2)
about 4 years ago · Santiago Gelvez Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda