我正在寻找一个能够执行以下操作的正则表达式:
INPUT: User Name (email@address.com)
OUTPUT: User Name
实现这一目标的最佳方法是什么?使用正则表达式提取括号内的文本并替换它和任何)(字符?
答案 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