【发布时间】:2017-02-25 18:46:28
【问题描述】:
我想删除多对括号之间的文本。如果字符串中只有一对括号,则下面的代码可以正常工作:
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);
这很好用!
但是,如果字符串中包含多组括号,则会删除太多文本。 Regex 表达式删除 FIRST 左括号和 LAST 右括号之间的所有文本。
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 -
另一种可能性是将
.*更改为[^)]*- 除右括号外的任何符号。 -
天才——您的第一个解决方案完美运行!