2016-11-16 6 views
-1

Dies scheint wie eine Frage, die viele Male beantwortet wurde. Mein Team und ich haben in der letzten Stunde viele Lösungen ohne Glück versucht. Wir haben einen datenbankbasierten Zeichenfolgenwert, der c: \ test enthält, und wir möchten den umgekehrten Schrägstrich durch \\ ersetzen, was zu c:\\test führt.Ersetzen einzelner Backslash in datenbankgesteuerter Zeichenfolge

Wir haben versucht mit .Replace, Regex.Replace, .Split und Neuerstellung der Zeichenfolge, habe ich versucht, mit einer for-Schleife und Teilzeichenfolge jedes Zeichen zu untersuchen. Wenn du am Doppelpunkt vorbeikommst, erscheint das nächste Zeichen als "\ t".

Bitte versuchen Sie die Lösung vor dem Einreichen, da wir viele verschiedene Methoden einschließlich Dutzende von Vorschlägen bereits auf Stapelüberlauf versucht haben.

Wenn wir die Zeichenfolge manuell als literal wie Pfad = @ "c: \ test" festlegen, funktioniert die Verwendung von Ersetzung problemlos.

Ich würde denken, dass die Lösung wäre, eine Zeichenfolge zu erstellen, die das Escape-Zeichen nicht verarbeitet, aber ich habe keine Ahnung, wie Sie das implementieren.

+0

Haben Sie Ihre versucht, "c: \\ test"? –

+0

Falls diese Kuriosität mit jemand anderem passiert. Dies geschah nur, weil der Pfad von "C: \ temp" verwendet wurde. Hätten wir die Zeichenfolge auf "c: \ logs" voreingestellt, hätten wir eine ungültige Escape erhalten, aber da \ t die von Alexei erwähnte Registerkarte ist, akzeptierte sie die Zeichenfolge als gültig, zeigte aber auf "c: emp". – CubeRoot

Antwort

0

Klingt Zeichenfolge enthält bereits "Tab" Zeichen ('\t') Sie es wahrscheinlich mit "\\t" ersetzen müssen:

var result = "c:\test".Replace("\t", "\\t"); 
+0

Ich habe festgestellt, dass, wenn ich den Wert mit Argumenten aus einer Konsole Anwendung, die es automatisch entkoppelt die Zeichenfolge. Sie haben Recht, dass das \ t als Tab behandelt wird. Ich bin ein wenig verwirrt, dass es so bevölkert wird und nicht in einen Backslash umgewandelt wird. Wenn Sie versuchen, c: \ temp in c: \ path zu ändern, gibt die Zeichenfolge einen Fehler aus, dass \ p kein gültiger Escape ist. – CubeRoot

Verwandte Themen