tags:

views:

125

answers:

2

Hi there,

I'm looking for a regular expression which will perform the following:

INPUT: User Name ([email protected])
OUTPUT: User Name

What would be the best way to achieve this? Using regular expression to extract the text within the brackets and replacing this and any )( characters?

Any help would be appreciated,

Thanks

+7  A: 

This should do the job:

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

Note the escaping of the ( and ) chars so that they aren't recognised as group markers.

Noldorin
+5  A: 

Did you mean you want the user name output, rather than the email address? For either case, you don't need regexes. For example, assuming the input is always well-formed and hence leaving out any error checking,

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

will get you the user name. And if you did want the email address, that too is available without resorting to regexes:

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