我正在寻找一个执行以下操作的正则表达式:
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)
请注意转义(和)字符的转义,以便它们不会被识别为组标记.
您是不是想要输出用户名而不是电子邮件地址?对于任何一种情况,您都不需要正则表达式.例如,假设输入总是格式良好,因此不会进行任何错误检查,
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)