2016-04-21 15 views
0

Ich habe keine Ahnung, wie man mit nur 1 "\"C# Ersetzen 1+ Vorkommen von Kohle durch 1char

Beispiel 1+ Vorkommen von "\" in Pfad ersetzen:

C:\\\ProgramFiles\\New Folder\TestFolder\\Test\\\ 

und nach ersetzen Sie es sein sollte:

C:\ProgramFiles\New Folder\TestFolder\Test\ 

Aber es kann mehr Vorkommen von „\“ als 3

+0

ersetzen Sie \\ durch \ solange es \\ in der Zeichenfolge –

+0

Es war nur für Backslash in Pfaden. – ChrisB

Antwort

2

Sie könnten einen regulären Ausdruck ein anzupassen ny Anzahl von aufeinanderfolgenden \ Zeichen mit einem einzigen mit der Regex.Replace() Methode:

// This will replace any number of consecutive slashes with a single slash 
var output = Regex.Replace(input,@"\\+","\\"); 

Sie können see a working example of this here.

Wenn Sie diese Pfade innerhalb des Visual Studio-Debuggers betrachten, sollten Sie beachten, dass sie häufig zusammen mit ihren zugeordneten Escape-Zeichen (eine zusätzliche \) angezeigt werden, die möglicherweise nicht in der letzten Zeichenfolge selbst vorhanden sind .

+0

Vielen Dank. Es hat genau so funktioniert, wie ich es wollte. Ich arbeite an einer Art Mini Total Commander Programm und der Benutzer kann seinen eigenen Weg geben. Und ich hatte Probleme, wenn er viele Backslashes hinzufügt und versucht, zurück zu gehen, als er bereits im root war. – ChrisB

Verwandte Themen