Bagaimana untuk Menangkap Kumpulan Berulang dalam Ungkapan Biasa Go?

Susan Sarandon
Lepaskan: 2024-10-26 08:36:30
asal
279 orang telah melayarinya

How to Capture Repeating Groups in Go Regular Expressions?

Menangkap Kumpulan Berulang dalam GO

Apabila cuba menghuraikan rentetan yang mengikut format tertentu, seperti perkataan huruf besar diikuti dengan sifar atau lebih ganda -hujah yang dipetik, adalah perlu untuk menentukan ungkapan biasa yang menangkap elemen yang dikehendaki. Dalam senario yang disediakan, percubaan untuk menangkap hujah berulang menggunakan ungkapan biasa berikut:

re1, _ := regexp.Compile(`([A-Z]+)(?: "([^"]+)")*`)
Salin selepas log masuk

gagal menangkap semua hujah dengan betul. Untuk menyelesaikan isu ini, ungkapan biasa yang disemak semula dicadangkan:

re1, _ := regexp.Compile(`([A-Z]+)|(?: "([^"]+)")`)
Salin selepas log masuk

Ungkapan biasa yang disemak ini sepadan sama ada perkataan huruf besar atau rentetan petikan dua tanpa menangkap petikan di sekeliling. Pendekatan ini membolehkan penangkapan hujah berulang yang lebih baik, seperti yang ditunjukkan dalam coretan kod berikut:

results := re1.FindAllStringSubmatch(`COMMAND "arg1" "arg2" "arg3"`, -1)

fmt.Println("Command:", results[0][1])
for _, arg := range results[1:] {
    fmt.Println("Arg:", arg[2])
}
Salin selepas log masuk

Pendekatan yang disemak ini berjaya menangkap perintah dan tiga hujahnya dan mencetaknya secara berasingan.

Atas ialah kandungan terperinci Bagaimana untuk Menangkap Kumpulan Berulang dalam Ungkapan Biasa Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan