Как удалить текст в скобках с использованием регулярного выражения
Я ищу регулярное выражение, которое будет выполнять следующее:
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();