Puedes utilizar una expresión regular para encontrar todas las ocurrencias de texto entre paréntesis angulares y reemplazarlas por una cadena vacía. En C#, puedes hacerlo de la siguiente manera:
using System.Text.RegularExpressions;
string texto = "Texto adelante [texto con paréntesis]\nDice algo [con otra cosa] y algo más\nDe nuevo [no coincide] y [ahora con esto si] va\nUltimo [texto con] dato [también con] con nada";
string resultado = Regex.Replace(texto, @"\s*\[.*?\]\s*", "");
Console.WriteLine(resultado);
En esta expresión regular, utilizamos \s*
para permitir que haya espacios o saltos de línea antes y después de los paréntesis angulares, y .*?
para capturar cualquier texto entre ellos de la manera más corta posible (para evitar capturar demasiado texto si hay varios pares de paréntesis en la misma línea). La expresión se encierra entre \[
y \]
para que coincida con los paréntesis angulares literalmente.
La función Regex.Replace
reemplaza todas las ocurrencias de la expresión regular por una cadena vacía, lo que elimina el texto entre paréntesis angulares. El resultado final se almacena en la variable resultado
.