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

时间:2009-09-07 08:30:40

标签: c# regex

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

INPUT: User Name (email@address.com)
OUTPUT: User Name

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

3 个答案:

答案 0 :(得分:32)

这应该做的工作:

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

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

答案 1 :(得分:9)

您的意思是您想要输出用户名而不是电子邮件地址吗?对于这两种情况,您都不需要需要正则表达式。例如,假设输入始终格式正确,因此不进行任何错误检查,

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

会为您提供用户名。如果您确实需要电子邮件地址,那么也可以使用,而无需使用正则表达式:

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

答案 2 :(得分:1)

我只是提供另一种方法来做到这一点,虽然我会自己使用正则表达式,因为这很笨重:

DOCKER_OPTS