在C#中从字符串中删除括号

8

我需要在C#中从字符串中移除括号,具体请参见code-behind

例如,如果我的字符串是[My [] Groups],我想将其变成My [] Groups


1
看一下 string.replace()。 - Josh C.
将String.Replace()添加到您的工具箱中,如何? - lboshuizen
8个回答

20

试试这个:

yourString = yourString.Replace("[", string.Empty).Replace("]", string.Empty);

问题被编辑后,已更新答案

string s = "[My [] Groups]";
string pattern = @"^(\[){1}(.*?)(\]){1}$";
Console.WriteLine(Regex.Replace(s, pattern, "$2")); // will print My [] Groups

17

使用您提供的字符串,最简单的解决办法是使用子字符串:

if (s.Length > 2) {
    s = s.Substring(1, s.Length-2);
}

只有当您确信字符串的第一个和最后一个字符确实是方括号时,此方法才有效。如果它们不是方括号,例如未经修剪的字符串,则可能需要执行其他字符串操作(例如修剪字符串)。


1
这意味着'['和']'仅位于字符串的开头和结尾。这可能是用户的情况,但问题中没有说明。 - inquam
1
@inquam 我完全同意这个问题有点不够明确。子字符串的技巧适用于帖子中的示例,但如果要求比那更复杂,它可能不起作用。 - Sergey Kalinichenko
1
@Neon 请记住,如果您在未括在括号内的字符串上运行此操作,它仍将删除该字符串的第一个和最后一个字符。 - inquam

15

使用简单的Trim

var result = "[My [] Groups]".Trim('[', ']');

7

请查看String.Replace方法。

http://msdn.microsoft.com/en-us/library/fk49wtc1.asp

更新:

如果只是要删除封闭括号,那么可以直接去掉第一个和最后一个字符。可以使用dasblinkenlight提供的代码或正则表达式实现。

但一定要确定它们确实是括号。

如果使用正则表达式,你可以一次性完成所有操作。否则,你应该将类似于dasblinkenlight解决方案的内容添加到其中。

if (s.Length > 2) {
  if(s.StartsWith("[")) {
    s = s.Substring(1, s.Length-1);
  }
  if(s.EndsWith("]")) {
    s = s.Substring(0, s.Length-1);
  }
}

如果你只想在有起始结束括号的情况下进行去除操作

if (s.Length > 2) {
  if(s.StartsWith("[") && s.EndsWith("]")) {
    s = s.Substring(1, s.Length-2);
  }
}

检查长度是否大于2的部分可能可以去掉,但是我保留它是为了展示初始代码来源于dasblinkenlight编写的。


“dasblinkenlight” 是什么或者是谁? - Peter Mortensen
看起来这个用户可能在过去的10年里更改了名称(或删除了他们的回答);) - inquam

3
以下语句删除所有字符 [ 和 ]。
Regex.Replace("This [is [a] [test.", @"[\[\]]", "")   // -> "This is a test."

3
替换操作将会去掉内部和外部的括号。我认为您想要的是:
string result = "[My [] Groups]".TrimLeft('[').TrimRight(']');

1
在C#中,它是TrimStart和TrimEnd。 - Varun

1
var myString = "[My Groups]";
myString.Replace("[", string.Empty);
myString.Replace("]", string.Empty);

@Artem Vyshniakov... 感谢您的回复。如果我的字符串是这样的 [My [] Groups]。在这种情况下,我应该怎么做才能替换开头的 '[' 和结尾的 ']',以便我的结果是 My [] Groups。谢谢 - Arun
我怀疑@Neon是否在测试代码。 - chridam
1
@Neon:如果你想让“[My [] Groups]”变成“My [] Groups”,你只需要去掉第一个和最后一个字符。如果你想从字符串中删除括号,或者是所有括号,请在问题中表述得更清楚些。 - inquam


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接