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

135
Visualizações
¿Cómo puedo capturar un carácter específico dentro de cadenas específicas con expresiones regulares?

Quiero reemplazar todos los puntos -que están dentro de cadenas específicas- por guiones bajos. En mi caso, estoy usando i18n (para traducciones) dentro de mi aplicación, y las claves se llaman usando '$t(clave)'. La clave puede ser así:

 key = 'translationKey' key = 'translationKey.subkey.subSubkey' key = 'translationKey.subkey.one' key = 'translationKey.subkey.zero' key = 'translationKey.subkey.others'

En el contexto $t: quiero transformar los puntos (.) que no son seguidos por one o zero u others en guiones bajos (_). Si tengo esas entradas:

 foo.toto.anything $t('translationKey') $t('translationKey.subkey.subSubkey') $t('translationKey.subkey.one') $t('translationKey.subkey.zero') $t('translationKey.subkey.others')

Entonces la salida será:

 foo.toto.anything $t('translationKey') $t('translationKey_subkey_subSubkey') $t('translationKey_subkey.one') $t('translationKey_subkey.zero') $t('translationKey_subkey.others')

Me gustaría usar la búsqueda de expresiones regulares de Vscode para capturar esos puntos y reemplazarlos (si es posible).

Solo logré obtener todas las cadenas donde están los puntos de destino, pero no puedo alcanzar solo los puntos. Aquí está la expresión regular que tengo atm: (\$|\.)t?t(c|p)?('(\w+\.?)*')

Gracias

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

0

Puedes usar

 (?<=\$t\('[^']*)\.(?!(?:one|zero|others)')(?=[^']*'\))

Vea la demostración de expresiones regulares . Detalles :

  • (?<=\$t\('[^']*) - una mirada positiva hacia atrás que requiere $t(' y luego cero o más caracteres que no sean ' inmediatamente a la izquierda de la ubicación actual
  • \. - un punto
  • (?!(?:one|zero|others)') - una búsqueda anticipada negativa que falla la coincidencia si hay one' , zero' u others' inmediatamente a la derecha de la ubicación actual
  • (?=[^']*'\)) - una búsqueda anticipada positiva que requiere cero o más caracteres que no sean ' y luego ') .
about 4 years ago · Juan Pablo Isaza Relatório

0

La siguiente expresión regular debería funcionar: coincide con todos los puntos no seguidos por "uno", "otros" y "cero"

 (?<=\$t\('[^']+)\.(?!one|others|zero)

Puedes probarlo en línea aquí

https://regex101.com/r/84Jil1/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