我需要从c#后面的字符串中删除括号中的括号。
例如,如果我的字符串为[My [] Groups]
,我想将其转换为My [] Groups
。
感谢。
答案 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)
尝试string.Replace
http://msdn.microsoft.com/en-us/library/system.string.replace.aspx
答案 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(']');