Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Membezakan Antara Watak Baris Baharu yang Dilepaskan dan Sebenar dalam Output Go String?

Bagaimanakah Saya Boleh Membezakan Antara Watak Baris Baharu yang Dilepaskan dan Sebenar dalam Output Go String?

Susan Sarandon
Susan Sarandonasal
2024-11-28 03:46:10838semak imbas

How Can I Distinguish Between Escaped and Actual Newline Characters in Go String Output?

Membezakan Aksara Baris Baharu dalam Go

Dalam Go, membaca output rentetan daripada arahan luaran mungkin menimbulkan cabaran dalam membezakan antara aksara baris baharu "n" dalam kandungan rentetan dan pemisah baris sebenar.

The Masalah

Apabila menggunakan kaedah seperti rentetan.Split(output, "n") atau bufio.NewScanner(strings.NewReader(output)), penampan rentetan berpecah pada mana-mana contoh aksara "n" , tidak kira sama ada watak putus baris atau sebahagian daripada kandungan rentetan.

The Penyelesaian

Masalah timbul kerana Go melarikan diri daripada aksara pemisah baris dalam literal rentetan yang disertakan dalam kutu belakang. Untuk membezakan antara pemisah baris yang dilepaskan dan yang sebenar, anda boleh menggunakan pendekatan berikut:

import "strings"

func ProcessStringOutput(output []byte) []string {
    // Replace escaped line breaks with actual line breaks
    output = []byte(strings.Replace(string(output), `\n`, "\n", -1))

    // Split into lines
    return strings.Split(string(output), "\n")
}

Fungsi ini menukar pemisah baris yang dilepaskan terbenam kepada pemisah baris sebenar, membolehkan pemisahan baris yang betul tanpa mengganggu kandungan rentetan.

Contoh Penggunaan

Diberi rentetan berikut output:

First line: "test1"
Second line: "123;\n234;\n345;"
Third line: "456;\n567;"
Fourth line: "test4"

Fungsi ini akan menghasilkan tiga baris dan bukannya tujuh:

[]string{"First line: \"test1\"", "Second line: \"123;\n234;\n345;\"", "Third line: \"456;\n567;\""}

Kaedah ini membolehkan menghuraikan rentetan berbilang baris sambil mengekalkan aksara baris baharu dalaman.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membezakan Antara Watak Baris Baharu yang Dilepaskan dan Sebenar dalam Output Go String?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn