Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

137
Views
¿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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!