Usando JavaScript, estoy tratando de reemplazar el texto si está entre paréntesis y el paréntesis tiene un carácter específico ( A ) antes.
Una cadena puede verse así:
A(This text) should (say) hello. Aquí A(This text) debe reemplazarse con You , pero (say) no debe reemplazarse en absoluto, porque no tiene el carácter A antes. Además, el carácter A tiene que estar en mayúsculas.
He intentado con expresiones regulares pero me resulta muy difícil de entender. En este momento, solo puedo eliminar A y luego reemplazar lo que está entre paréntesis, pero esto también elimina otro texto dentro de paréntesis que no tiene A antes de ellos.
Esto es lo que conseguí:
const string = "A(This text) should (say) hello." function runIt() { const replace = string.replace(/ *\A() */g, "You") //Removes "A" let replace2 = replace.replace(/ *\([^)]*\) */g, " ") //"Removes all text inside all parentheses console.log(replace2) //Result is: "You should hello.", it should say: "You should (say) hello. } runIt();Usar
\bA\([^()]+\)Ver prueba de expresiones regulares .
EXPLICACIÓN
-------------------------------------------------------------------------------- \b the boundary between a word char (\w) and something that is not a word char -------------------------------------------------------------------------------- A 'A' -------------------------------------------------------------------------------- \( '(' -------------------------------------------------------------------------------- [^()]+ any character except: '(', ')' (1 or more times (matching the most amount possible)) -------------------------------------------------------------------------------- \) ')'código JavaScript
const string = "A(This text) should (say) hello." function runIt(string) { let replace2 = string.replace(/\bA\([^()]+\)/g, 'You') console.log(replace2) } runIt(string)