Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menangkap Kumpulan Berulang dalam Ungkapan Biasa Go?

Bagaimana untuk Menangkap Kumpulan Berulang dalam Ungkapan Biasa Go?

Susan Sarandon
Susan Sarandonasal
2024-10-26 08:36:30206semak imbas

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]+)(?: "([^"]+)")*`)

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

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

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])
}

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!

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