Golang ialah bahasa pengaturcaraan yang berkuasa dengan fungsi ekspresi biasa terbina dalam menyediakan kemudahan untuk memproses fail teks. Dalam Golang, ungkapan biasa boleh digunakan untuk memadankan dan mengekstrak baris tertentu dalam fail. Artikel oleh editor PHP Xiaoxin ini memperkenalkan pembaca kepada cara menggunakan fungsi ekspresi biasa Golang untuk memadankan baris dengan tepat dalam fail dan memberikan contoh kod sebenar. Dengan mempelajari artikel ini, pembaca akan dapat memahami dengan lebih baik dan menggunakan fungsi ungkapan biasa dalam Golang, serta meningkatkan kecekapan dan ketepatan pemprosesan fail.
Saya mempunyai fail dengan kandungan berikut
# requires authentication with auth-user-pass auth-user-pass #auth-user-pass # auth-user-pass auth-user-passwd
Adakah terdapat cara untuk menjadikan regex hanya sepadan dengan baris kedua dengan golang?
Saya cuba menggunakan kod berikut tetapi ia mengembalikan kepingan kosong
package main import ( "fmt" "os" "regexp" ) func main() { bytes, err := os.readfile("file.txt") if err != nil { panic(err) } re, _ := regexp.compile(`^auth-user-pass$`) matches := re.findallstring(string(bytes), -1) fmt.println(matches) }
$ go run main.go []
Rentetan anda mengandungi berbilang baris, jadi anda harus menghidupkan mod berbilang baris (menggunakan bendera m
):
Berikut ialah contoh mudah:
package main import ( "fmt" "regexp" ) func main() { var str = `# Requires authentication with auth-user-pass auth-user-pass #auth-user-pass # auth-user-pass auth-user-passwd` re, _ := regexp.Compile(`(?m)^auth-user-pass$`) matches := re.FindAllString(str, -1) fmt.Println(matches) }
Anda boleh mencuba coretan kod ini di: https://www.php.cn/link/f4f4a06c589ea53edf4a9b18e70bbd40.
Atas ialah kandungan terperinci Baris tepat dalam fail regex Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!