Я бы использовал
int start=user.IndexOf('(');
if (start != -1) {
end = user.IndexOf(')', start);
return user.Substring(start+1,end-start-1);
} else
return user;
Но это просто косметическое изменение: использование символов в IndexOf немного быстрее, а использование метода Substring, кажется, более точно выражает, что должно быть сделано (и этот метод более надежен, если у вас несколько пар скобок). ..)
Тем не менее, Метод Daniel L (использующий String.Split
) может быть проще (но он не очень хорошо справляется с некорректными строками и должен создавать массив строк).
В общем, я бы посоветовал вам преодолеть отвращение к регулярным выражениям, поскольку именно эта ситуация и предназначена для них :-) ...