1

タグを含む文字列ブロックから [Start] と [End] の間のテキストのセクションを削除するにはどうすればよいですか?

IndexOfandなどを使用するよりも簡単な方法はありSubstringますか?

更新:使用しようとしています

var output = Regex.Replace("[Start]SomeText[End]", @"(?<=[Start]).*(?=[End])", "");

しかし、そのパターンはうまく機能しません。[Start] と [End] の間のすべてを削除する必要があります。

入力テキスト: [開始] Hello World [終了]

出力テキスト: [開始][終了]

4

2 に答える 2

2

これを試すことができます:

Regex rgx = new Regex(@"(?<=\[Start])(?s).+?(?=\[End])");
string output = rgx.Replace(input, "");

またはこれはより高速になります:

Regex rgx = new Regex(@"(?<=\[Start])(?>[^[]+|\[(?!End]))+(?=\[End])");
string output = rgx.Replace(input, "");
于 2013-11-13T14:28:12.197 に答える
0

[および]は、正規表現の特殊文字です。

var output =
   Regex.Replace("[Start]SomeText[End]", @"(?<=\[Start\]).*(?=\[End\])", ""); 
于 2013-11-13T14:00:31.517 に答える