Regex - Ersetzt mehrere Leerzeichen durch tab
Bin ich mit dem Codebeispiel unten, und was ich will zu tun ist, ersetzen Sie alle mehrere Leerzeichen mit 1 \t.
So
"I am having fun working on Regex"
gibt
"I am\thaving fun\tworking\ton\tRegex"
Aktuelle code:
RegexOptions options = RegexOptions.None;
Regex regex = new Regex(@"[ ]{2,}", options);
tempo = regex.Replace(tempo, @" ");
Dank!
- Das ist eine seltsame Sache zu tun; die Registerkarten sind in der Regel erweitert um eine variable Anzahl von Leerzeichen, je nachdem, wo der tab erscheint in der Zeile. Übrigens, sollten Sie wahrscheinlich Bearbeiten Sie Ihre Frage so, dass es tatsächlich eine Frage stellt.
- und was ist das Problem dann? andere als die Tatsache, dass in Ihrem Beispiel, das Sie nur zu haben scheinen, ein Raum zeigt sich in Ihren string? wahrscheinlich, weil der Raum Korrektur Fragen und regex.Ersetzen(tempo, @"<tab>"); Sollte wirklich regex.Ersetzen(tempo, "\t");
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nur dazu:
haben Sie vergessen, Ihre
\t
in Ihren versuchen.In Ihrem Beispiel, das Sie ersetzen mehrere Räume mit einer einzigen Zeile:
Was Sie wollen, ist zu ersetzen mit der Registerkarte Zeichen, die geschrieben
\t
:Beachten Sie, dass ich entfernt die
@
Zeichen aus dem string im Aufruf vonReplace
, sonst@"\t"
wird interpretiert als "die Zeichenfolge backslash-t" anstelle der tab-Zeichen.Regex.Replace(subjectString, " {2,}", "\t")
funktioniert,Regex.Replace(subjectString, " {2,}", @"\t")
nicht.