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

457
Visualizações
¿Cómo eliminar el último bloque de texto entre paréntesis en una cadena, solo si hay dos bloques de texto entre paréntesis al final de la cadena?

Necesito eliminar el último bloque de texto entre paréntesis en una cadena, pero solo cuando hay dos bloques de texto entre paréntesis al final de esa cadena.

Por ejemplo, si la cadena es

 Text (aaa) Text (bbb) Text (ccc) (ddd).

Necesito conseguir

 Text (aaa) Text (bbb) Text (ccc).

Mientras que, si la cadena es

 Text (aaa) Text (bbb) Text (ccc).

Necesito conservarlo como está.

Probé varias expresiones regulares usando https://regexr.com (por ejemplo /\s\(([^)]+)\)\s\(([^)]+)\)/ ), pero ninguna de ellos es adecuado para mí (no tengo mucha experiencia con expresiones regulares).

¿Me darías alguna sugerencia?

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

0

Puedes usar

 text = text.replace(/(\([^()]*\))\s*\([^()]*\)(?![\s\S]*\([^()]*\))/, '$1') // Or, if there is always a dot and end of string (with possible trailing whitespace) text = text.replace(/(\([^()]*\))\s*\([^()]*\)(?=\.\s*$)/, '$1')

Vea la demostración de expresiones regulares . Detalles :

  • (\([^()]*\)) - Grupo 1 ( $1 ): ( , cero o más caracteres que no sean ( y ) y luego un ) char
  • \s* - cero o más espacios en blanco
  • \([^()]*\) - ( , cero o más caracteres que no sean ( y ) y luego un ) carácter
  • (?![\s\S]*\([^()]*\)) - una búsqueda anticipada negativa que garantiza que no haya otra (...) subcadena en ninguna parte a la derecha de la ubicación actual.
  • (?=\.\s*$) - una anticipación positiva que requiere . , luego cero o más espacios en blanco y luego un final de cadena inmediatamente a la derecha de la ubicación actual.

Vea la demostración de JavaScript:

 const texts = ['Text (aaa) Text (bbb) Text (ccc) (ddd).','Text (aaa) Text (bbb) Text (ccc).']; const rx = /(\([^()]*\))\s*\([^()]*\)(?![\s\S]*\([^()]*\))/; for (const text of texts) { console.log(text, '=>', text.replace(rx, '$1')); }

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