Как удалить текст в скобках с использованием регулярного выражения

Я ищу регулярное выражение, которое будет выполнять следующее:

INPUT: User Name ([email protected])
OUTPUT: User Name

Каким будет лучший способ достичь этого? Используя регулярное выражение для извлечения текста в скобках и замены этого и любого) (символы?

Ответы

Ответ 1

Это должно выполнить задание:

var input = "User Name ([email protected])";
var output = Regex.Replace(input, @" ?\(.*?\)", string.Empty);

Обратите внимание на экранирование символов ( и ), чтобы они не были распознаны как маркеры групп.

Ответ 2

Вы имели в виду, что хотите вывести имя пользователя, а не адрес электронной почты? Для обоих случаев вам не нужны регулярные выражения. Например, если предположить, что вход всегда хорошо сформирован и, следовательно, исключает любую проверку ошибок,

string output = input.Substring(0, input.IndexOf(" ("))

вы получите имя пользователя. И если вам нужен адрес электронной почты, это тоже доступно, не прибегая к регулярным выражениям:

int n;
string output = input.Substring(n = 1 + input.IndexOf('('),
                                input.IndexOf(')') - n)

Ответ 3

Я просто предлагаю другой способ сделать это, хотя я просто буду использовать регулярное выражение, так как это неуклюже:

    string output = input.Split('(')[0].TrimEnd();