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

230
Visualizações
Regex para obtener 2 caracteres específicos entre otros 2 caracteres específicos

tengo una cadena:

[](first-(second))

Me gustaría eliminar ( y ) entre [](... y el último ...)

Dicho esto, actualmente estoy usando (?<=\[\]\()(.*?)(?=\))

Supongo que (.*?) debe reemplazarse con algún tipo de expresión que encuentre ( y ) en el medio.

Algo similar a string.replace(/(?<=\[\]\()(.*?)(?=\))/g, '')

Y la cadena debería verse como [](first-second)

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Como ya usaste un lookbehind en el patrón con JavaScript, podrías usar un cuantificador infinito en el lookbehind, unir los 2 paréntesis que no deseas conservar y capturar en el grupo 1 lo que deseas conservar.

En el grupo de uso de reemplazo 1 usando $1

 (?<=\[\]\([^()]*)\(([^()]*\))\)

El patrón coincide:

  • (?<= Positivo mirar atrás, afirmar lo que está a la izquierda es:
    • \[] Partido []
    • \([^()]* Coincidencia ( y 0+ veces cualquier carácter excepto ( y )
  • ) Cerrar mirar atrás
  • \( Partido (
  • ([^()]*\)) Grupo de captura 1 , coincidencia 0+ veces cualquier carácter excepto ( y )
  • \) Partido )

Demostración de expresiones regulares

 const s = "[](first-(second))" const regex = /(?<=\[]\([^()]*)\(([^()]*\))\)/; console.log(s.replace(regex, "$1"))

O usando 2 grupos de captura en lugar de mirar atrás:

 (\[]\([^()]*)\(([^()]*\))\)

Demostración de expresiones regulares

 const s = "[](first-(second))" const regex = /(\[]\([^()]*)\(([^()]*\))\)/; console.log(s.replace(regex, "$1$2"))

about 4 years ago · Juan Pablo Isaza Relatório

0

Si no necesita un código elegante, ¿por qué no optar por el camino fácil? Extraiga la subcadena sin corchetes externos, reemplace y concat. los caracteres eliminados

s = '[](first-(second))'

 mySubstring = s.substring(3, s.length -2); // 'first-(second)' //your replacement func. result = '[]('+mySubstring+')'; //'[](first-second)'
about 4 years ago · Juan Pablo Isaza Relatório

0

Aquí hay un ejemplo (sin usar anticipación). Debería guiarte en la dirección correcta.

Usando 2 grupos de captura y algunos conjuntos no codiciosos, puede ensamblar su cadena de destino.

No asume paréntesis ni corchetes anidados adicionales, aunque puede modificarlo según sus necesidades para incluir solo caracteres alfanuméricos en los conjuntos de caracteres.

 const d = '[](foo-(bar)) [](foo2-(bar2))' const rx = /(\[\]\([^-\(\)\[\]]*?-)\(([^\)]*?)\)\)/g const m = rx.exec(d) console.log(m) const fixed = d.replace(rx, '$1$2)') console.log(fixed)

about 4 years ago · Juan Pablo Isaza 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