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

Aru*_*run 4 c# brackets

我需要在后面的代码中从c#中的字符串中删除括号.例如,如果我有一个字符串[My [] Groups],我想把它变成My [] Groups.

谢谢.

das*_*ght 16

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

if (s.Length > 2) {
    s = s.Substring(1, s.Length-2);
}
Run Code Online (Sandbox Code Playgroud)

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


Nas*_*ine 15

试试这个:

yourString = yourString.Replace("[", string.Empty).Replace("]", string.Empty);
Run Code Online (Sandbox Code Playgroud)

自问题编辑后更新的答案:

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


inq*_*uam 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);
  }
}
Run Code Online (Sandbox Code Playgroud)

或者,如果你只有开始结束括号,你只想剥离

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

检查长度是否大于2可能会被删除,但我保留它以显示初始代码的来源是由dasblinkenlight编写的.


cuo*_*gle 8

使用简单Trim:

var result = "[My [] Groups]".Trim('[', ']');
Run Code Online (Sandbox Code Playgroud)