从c#中的字符串中删除括号

时间:2012-10-11 14:05:13

标签: c# brackets

我需要从c#后面的字符串中删除括号中的括号。 例如,如果我的字符串为[My [] Groups],我想将其转换为My [] Groups

感谢。

8 个答案:

答案 0 :(得分:14)

试试这个:

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

Updated answer自编辑问题以来:

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

答案 1 :(得分:14)

使用示例中的字符串解决此问题的最简单方法是使用子字符串:

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

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

答案 2 :(得分:8)

查看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编写的。

答案 3 :(得分:8)

易于使用Trim

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

答案 4 :(得分:2)

答案 5 :(得分:2)

以下语句删除所有字符[和]。

Regex.Replace("This [is [a] [test.", @"[\[\]]", "")   // -> "This is a test."

答案 6 :(得分:1)

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

答案 7 :(得分:0)

替换解决方案将摆脱内部括号以及外部括号。我想你想要:

string result = "[My [] Groups]".TrimLeft('[').TrimRight(']');