Me gustaría reemplazar el texto usando javascript/regex
"TV "my-samsung" (UUID: a1c3bbc1d27c5be8:8baabe2fa7f5d9ca) ya está apagado".
con
El televisor 'my-samsung' ya está apagado.
eliminando texto (UUID: ) y reemplazando " con '
Parece que se pueden usar expresiones regulares
\([\s\S]*?\)https://regex101.com/r/xXDncn/1
o también he intentado usar el método de reemplazo en JS
str = str.replace("(UUID", "");Puedes usar
const str = '" "Tv "my-samsung" (UUID: a1c3bbc1d27c5be8:8baabe2fa7f5d9ca) is already switched-off""'; console.log( str.replace(/\s*\(UUID:[^()]*\)/g, '').replace(/^[\s"]+|[\s"]+$/g, '').replaceAll('"', "'") )Vea la primera demostración de expresiones regulares . Concuerda
\s* - cero o más espacios en blanco\(UUID: - (UUID: cadena[^()]* - cero o más caracteres que no sean ( y )\) - a ) carácter. La bandera g hace que reemplace todas las ocurrencias.
La segunda expresión regular elimina los espacios en blanco iniciales y finales y las comillas dobles:
^[\s"]+ - uno o más espacios en blanco y comillas dobles al comienzo de la cadena| - o[\s"]+$ - uno o más espacios en blanco y comillas dobles al final de la cadena. El .replaceAll('"', "'") es necesario para reemplazar todos los " con ' caracteres.
No es una buena idea fusionar estas dos operaciones en una ya que los reemplazos son diferentes. Así es como se podría hacer, solo con fines de aprendizaje:
const str = '" "Tv "my-samsung" (UUID: a1c3bbc1d27c5be8:8baabe2fa7f5d9ca) is already switched-off""'; console.log( str.replace(/^[\s"]+|[\s"]+$|\s*\(UUID:[^()]*\)|(")/g, (x,y) => y ? "'" : "") ) Es decir, " se captura en el Grupo 1, el reemplazo ahora es invocable, donde x es la coincidencia completa e y es el contenido del Grupo 1. Si el Grupo 1 coincide, el reemplazo es ' , de lo contrario, el reemplazo es una cadena vacía ( para eliminar la coincidencia encontrada).
puedes probar esto
str.replace(/\(.*?\)/, "") str.replace(/\(.*?\)/, "with")--- actualizar ---
const str = `"TV "my-samsung" (UUID: a1c3bbc1d27c5be8:8baabe2fa7f5d9ca) is already switched off."`; const a = str.replace(/"(.*?)\(.*\)(.*)"/, (a, b, c) => { return b.replace(/"/g, "'") + c }); console.log(a); //TV 'my-samsung' is already switched off.