Ich habe eine Zeichenfolge. Der Einfachheit halber könnte es so aussehen:Mehrere Zeichenfolgen ersetzen (innerhalb der gleichen Zeichenfolge)
\r\n\r\n\r\n
Es könnte auch mehr Vorkommen haben ‚\ r \ n‘ - ich bin nur hier, um das einfachste Problem veröffentlichen.
Ich brauche oben für das Beispiel einen Raum zwischen jedem Auftreten '\ r \ n \ r \ n' einzufügen, erwarte ich mit einer Schnur, am Ende, das wie folgt aussieht:
\r\n \r\n \r\n
I CAN Dazu den folgenden Code verwenden (was ich mag es nicht, weil es eine Menge von Strings schafft, um das erwartete Ergebnis zu produzieren):
string newString = "\r\n\r\n\r\n";
while (newString.Contains("\r\n\r\n"))
newString = newString.Replace("\r\n\r\n", "\r\n \r\n");
ich habe versucht, Probleme String.Replace zu verwenden oder herauszufinden ein regelmäßiger Ausdruck, der das für mich tun kann.
Wenn ich versuche, string.replace (oder sogar ein StringBuilder.Replace) zu verwenden, wie so ...
var result = "\r\n\r\n\r\n".Replace("\r\n\r\n", "\r\n \r\n");
ich am Ende mit
"\r\n \r\n\r\n" //There is no space between the last two carriage return/line feed
denke ich, dass ein regulärer Ausdruck könnte ersetzen Mach den Trick, aber ich kann nicht herausfinden, wie man die Regex-Engine dazu bringt, eine träge Übereinstimmung zu machen, um alle Vorkommen von \ r \ n nach der ersten Ersetzung zu ersetzen.
Ich habe sowohl SO und Google versucht, ein ähnliches Problem zu finden, aber nichts von Nutzen gefunden. Ich entschuldige mich im Voraus, wenn dies ein Duplikat ist, aber wenn es ist, kann ich es nicht finden!
Also zusammenfassend kann ich dies mit der While-Schleife tun, aber ich wollte wissen, ob es eine elegantere Lösung gab?
EDIT
Sorry - ein bisschen mehr ist dies: Mein Code kann auch eine Zeichenfolge überprüfen, die wie folgt aussieht:
5\r\n\r\nTest\r\n
In diesem Fall würde ich erwarten, um zu sehen, eine Zeichenfolge, die wie folgt aussieht: so
5\r\n \r\nTest\r\n
- ich will nicht nur ersetzen '\ r \ n' mit '\ r \ n' wie dieser wou gib mir ld eine Zeichenfolge, die lke aussieht:
"5\r\n \r\n Test\t\n "
Können Sie versuchen newString = newString.Replace ("\ r \ n", "\ r \ n") .Trim(); ? –
Entschuldigung - fügte weitere Details hinzu, als mir klar wurde, dass ich einen wichtigen Teil meiner Frage weggelassen hatte. – Jay