Вы можете попробовать использовать строковые функции
public string ChageText(string text)
{
//get the replace text
var replace = text.Substring(text.IndexOf("["), text.IndexOf("]") - text.IndexOf("[") + 1);
//split the replace text and append to original text
return text.Replace(replace, replace.Split("|")[0].Replace("[", ""));
}
Как использовать
Console.WriteLine(ChangeText("Hello, [World|Universe]!"));
Console.WriteLine(ChangeText("[He|Weston] ate an apple for breakfast."));
ВЫХОД
Hello, World!
He ate an apple for breakfast.