如何使用正则表达式删除括号中的文本

13 c# regex

我正在寻找一个执行以下操作的正则表达式:

INPUT: User Name (email@address.com)
OUTPUT: User Name
Run Code Online (Sandbox Code Playgroud)

实现这一目标的最佳方法是什么?使用正则表达式提取括号内的文本并替换此和任何)(字符?

Nol*_*rin 34

这应该做的工作:

var input = "User Name (email@address.com)";
var output = Regex.Replace(input, @" ?\(.*?\)", string.Empty);
Run Code Online (Sandbox Code Playgroud)

请注意转义()字符的转义,以便它们不会被识别为组标记.


Vin*_*jip 9

您是不是想要输出用户名而不是电子邮件地址?对于任何一种情况,您都不需要正则表达式.例如,假设输入总是格式良好,因此不会进行任何错误检查,

string output = input.Substring(0, input.IndexOf(" ("))
Run Code Online (Sandbox Code Playgroud)

会得到你的用户名.如果你确实想要这个电子邮件地址,那么也可以在不使用正则表达式的情况下使用它:

int n;
string output = input.Substring(n = 1 + input.IndexOf('('),
                                input.IndexOf(')') - n)
Run Code Online (Sandbox Code Playgroud)