0
我想删除多对括号中的每一对之间包含的文本。如何删除多对括号之间的文本?
var text = "This (remove me) works fine!";
// Remove text between brackets.
text = Regex.Replace(text, @"\(.*\)", "");
// Remove extra spaces.
text = Regex.Replace(text, @"\s+", " ");
Console.WriteLine(text);
这工作得很好:如果只有一对字符串中括号下面的代码工作正常!
但是,如果字符串中包含多个括号组,则会删除太多的文本。正则表达式删除了第一个左括号和最后一个右括号之间的所有文本。
var text = "This is (remove me) not (remove me) a problem!";
// Remove text between brackets.
text = Regex.Replace(text, @"\(.*\)", "");
// Remove extra spaces.
text = Regex.Replace(text, @"\s+", " ");
Console.WriteLine(text);
这是一个问题!
我很为难 - 我敢肯定有一个简单的解决方案,但我的想法......
帮助最欢迎!
尝试'*'而不是'*' - 即macth尽可能少 –
另一种可能性是改变'*'到'[^)] *?。 ' - 除了右括号之外的任何符号。 –
天才 - 你的第一个解决方案完美的作品! –