2014-09-23 3 views
0

Привет всем У меня возникли проблемы при замене строки, которые имеют обратную косую черту()Заменить символ обратной косой черты () с пустой строкой

string sRegex = "2004\01".Replace("\\", ""); 
Response.Write(sRegex); // which is giving me 20041 

Но то же самое, когда я включаю два обратных слеша давая мне выход, как ожидается,

string sRegex = "2004\\01".Replace("\\", ""); 
Response.Write(sRegex); // which is giving me 200401 

string sReplace = "2004\01"; 
string sRegex = sReplace.Replace("\\", ""); 

Итак, есть ли возможность набрать первый случай? так что он должен отображать один и тот же результат

ответ

10

\0 является нулевой символ, который нужно использовать дословный строку, так что компилятор будет рассматривать ваш первый обратный слэш как вместо управляющей последовательности

string sRegex = @"2004\01".Replace("\\", ""); 
+0

Я хотел бы также предложить '» 2004 \\ 01 ", кроме того, поскольку Dotnet не знает о escape-последовательностях. – Joe

+0

Привет, когда я непосредственно назначаю значение, оно работает нормально, если я присваиваю одно значение другой строке, а затем нужно сравнить, будет ли это работать. Посмотрите мое обновление – Dotnet

+0

@Dotnet Да просто добавьте @ начало строкового литерала или используйте два обратных косая черта (за одну косую черту), чтобы избежать ваших символов, поскольку Джо предложил –

Смежные вопросы