tengo una cadena como esta
const str = "Today is going to be @[City Temp](city-temp) in @[City Name](city-name)"
Quiero que la salida esté en la sintaxis del manillar, por ejemplo.
const str = "Today is going to be {{city-temp}} in {{city-name}}"
Tengo problemas para tratar de hacer coincidir este patrón.
Puedo ver que si lo hago
str.replace(/[()]/g,"")
Obtengo la cadena sin los corchetes.
Pero no puedo averiguar cómo buscar el patrón completo, como el siguiente, donde encuentro cualquier cosa que comience con @[ y termine con ) , no quiero comenzar solo con @ , ya que puede haber momentos en el cadena No quiero eliminar la @ donde no va seguida de [
/[\@\[A-Za-z0-9\](A-Za-z0-9-)
Puedes usar
str = str.replace(/@\[[^\][]*]\(([^()]*)\)/g, "{{$1}}")Vea la demostración de expresiones regulares . Detalles :
@\[ - una cadena @[[^\][]* - cero o más caracteres que no sean [ y ]]\( - un ]( cadena([^()]*) - Grupo 1 ( $1 ): cualquier cero o más caracteres que no sean ( y )\) - a ) carácter.Vea la demostración de JavaScript:
const str = "Today is going to be @[City Temp](city-temp) in @[City Name](city-name)" console.log(str.replace(/@\[[^\][]*]\(([^()]*)\)/g, "{{$1}}"))