code-behindで C# の文字列から囲み括弧を削除する必要があります。
たとえば、文字列が の場合、[My [] Groups]
それを に変換したいとしMy [] Groups
ます。
code-behindで C# の文字列から囲み括弧を削除する必要があります。
たとえば、文字列が の場合、[My [] Groups]
それを に変換したいとしMy [] Groups
ます。
これを試して:
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
例の文字列を使用してこれに対処する最も簡単な方法は、部分文字列を取得することです。
if (s.Length > 2) {
s = s.Substring(1, s.Length-2);
}
これは、最初と最後の文字が実際に角かっこであることが 100% 確実な場合にのみ機能します。そうでない場合、たとえば、文字列がトリミングされていない場合は、追加の文字列操作 (文字列のトリミングなど) を実行する必要がある場合があります。
使いやすいTrim
:
var result = "[My [] Groups]".Trim('[', ']');
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 によって記述されたものであることを示すために残しました。
試すstring.Replace
http://msdn.microsoft.com/en-us/library/system.string.replace.aspx
次のステートメントは、すべての文字 [ および ] を削除します。
Regex.Replace("This [is [a] [test.", @"[\[\]]", "") // -> "This is a test."
交換ソリューションは、内部ブラケットと外部ブラケットを取り除きます。私はあなたが欲しいと思います:
string result = "[My [] Groups]".TrimLeft('[').TrimRight(']');
var myString = "[My Groups]";
myString.Replace("[", string.Empty);
myString.Replace("]", string.Empty);