Zeilenumbrüche in Go differenzieren: Innere Zeichenfolgenumbrüche beibehalten
Beim Lesen der Ausgabe von Linux-Befehlen mit exec.Command kann das resultierende Byte-Array enthalten sowohl wörtliche Zeilenumbrüche („n“) als auch maskierte Zeilenumbrüche („\n“). Dies kann eine Herausforderung darstellen, wenn Sie versuchen, die Ausgabe in Zeilen aufzuteilen und dabei die inneren Zeichenfolgenumbrüche beizubehalten.
Ein Ansatz besteht darin, maskierte Zeilenumbrüche durch tatsächliche Zeilenumbrüche zu ersetzen, indem Sie die folgende Zeile verwenden:
strings.Replace(out, `\n`, "\n", -1)
By Auf diese Weise konvertieren wir die maskierten Zeilenumbrüche effektiv in ihre ursprüngliche Form, sodass wir die Ausgabe mithilfe von Standardmethoden in Zeilen aufteilen können, z. B.:
lines := strings.Split(out, "\n")
Das Ergebnis ist Die Ausgabe wird in Zeilen aufgeteilt, die Umbrüche innerhalb der Zeichenfolgen bleiben jedoch erhalten. Betrachten Sie beispielsweise die folgende Ausgabe:
First line: "test1" Second line: "123;\n234;\n345;" Third line: "456;\n567;" Fourth line: "test4"
Das Aufteilen dieser Ausgabe mit der oben genannten Technik führt zu den folgenden Zeilen:
First line: "test1" Second line: "123;\n234;\n345;" Third line: "456;\n567;" Fourth line: "test4"
Wie Sie sehen können, sind die inneren Zeichenfolgenumbrüche bleibt erhalten und die Ausgabe wird korrekt in Zeilen aufgeteilt.
Das obige ist der detaillierte Inhalt vonWie bleiben innere String-Umbrüche beim Teilen von Go-Strings mit Zeilenumbrüchen erhalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!