0

文字の特殊な組み合わせの出現をエスケープする必要がある文字列があります。つまり、そのような組み合わせが出現する前に「\」を付ける必要があります。ほとんどの組み合わせは実際には 1 文字 (二重引用符やバックスラッシュなど) ですが、複数文字 ("&&" など) の組み合わせもあります。1 つの方法は、これらの組み合わせで文字列の配列を作成し、それらをループして a を実行しString.Replace()、再帰的なエスケープを避けるためにバックスラッシュを最後にチェックすることです。しかし、それを行うためのより良い(よりエレガント/迅速な/など)方法はありますか?どうも

4

3 に答える 3

3

Replace のアイデアを使用しますが、代わりにStringBuilderを使用します(はるかに優れたパフォーマンス)。

于 2012-09-17T15:42:45.563 に答える
1

これにはRegex.Replaceを使用できます。

var input = @"abc'def&&aa\cc""ff";
var output = Regex.Replace(input, @"'|&&|""|\\", m => @"\" + m); // => "abc\'def\&&aa\\cc\"ff"
于 2012-09-17T15:46:58.453 に答える
0

文字列全体を取り、実行したい置換タイプごとに String.Replace() を実行するだけです。私の知る限り、それが最も迅速でエレガントな方法です。それが組み込みメソッドである理由です。

于 2012-09-17T15:44:29.780 に答える