views:

56

answers:

1

Hi,

I have a string "hello [world] this {is} a (test)" I want to remove all text in braces, e.g. returning "hello this a". But only if the braces match.
Anyone have a nice neat solution?

+3  A: 

You can use a regular expression:

s = Regex.Replace(s, @"\s*?(?:\(.*?\)|\[.*?\]|\{.*?\})", String.Empty);

The \s*? matches any white space before the brackets.
The (?: ) is a non-matching parenthesis to group the conditions inside it.
The \(.*?\) is mathing parentheses with zero or more characters between them.

Guffa