NgMのおかげで、.NET 3.5でStringBuilderを使用して特殊文字を見つけ出してエスケープしています。しかし、私はToStringメソッドを使用すると、エスケープ文字をエスケープして、前の演習を役に立たなくします。誰かがそれを回避する方法を知っていますか?ここでStringBuilderのToStringメソッドが文字列のエスケープ文字をエスケープしないようにするにはどうすればよいですか?
はコードです:ここでは
private String ParseAndEscapeSpecialChars(String input)
{
StringBuilder sBuilder = new StringBuilder(input);
String output;
String specialChars = @"([-\]\[<>\?\*\\\""/\|\~\(\)\#/=><+\%&\^\'])";
Regex expression = new Regex(specialChars);
if (expression.IsMatch(input))
{
sBuilder.Replace(@"\", @"\\");
sBuilder.Replace(@"'", @"\'");
}
output = sBuilder.ToString();
return output;
}
は、デバッグの結果は以下のとおりです。
input "005 - SomeCompany's/OtherCompany's Support Center"
sBuilder {005 - SomeCompany\'s/OtherCompany\'s Support Center}
output "005 - SomeCompany\\'s/OtherCompany\\'s Support Center"
また、@ sBuilder.ToString()も試してみましたが、同じ問題がありました。 – mattg
この出力はどこにありますか?コンソール? Winformsラベル?デバッガ? – blowdart
コードを見ると、出力に... \\ '...のようなパターンはありません。デバッガの出力を見て、プレゼンテーション目的でスラッシュをエスケープするチャンスはありますか? 'Console.Write(output)'? –