Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menangkap Berbilang Hujah dalam Go Menggunakan Ungkapan Biasa?
Menangkap Berbilang Kumpulan dalam Go: Satu Kajian Kes
Apabila menghuraikan rentetan yang mengandungi perkataan besar diikuti dengan hujah petikan dua pilihan, mengasingkan kumpulan individu boleh mencabar. Satu pendekatan biasa melibatkan penggunaan ungkapan biasa, seperti yang ditunjukkan oleh coretan kod berikut:
<code class="go">re1, _ := regexp.Compile(`([A-Z]+)(?: "([^"]+)")*`) results := re1.FindAllStringSubmatch(input, -1)</code>
Walau bagaimanapun, isu boleh timbul apabila berbilang hujah hadir, kerana hanya hujah terakhir yang ditangkap. Untuk menyelesaikan masalah ini, ungkapan biasa yang lebih fleksibel diperlukan.
Ungkapan Biasa Dipertingkat
Dengan melonggarkan kekangan kumpulan, kita boleh menangkap kedua-dua arahan dan hujah dengan berkesan:
re1, _ := regexp.Compile(`([A-Z]+)|(?: "([^"]+)")`)
Dalam regex yang disemak ini:
Pengeluaran dan Paparan
Setelah kumpulan ditangkap, kami boleh mengekstrak dan paparkan arahan dan hujah secara berasingan:
fmt.Println("Command:", results[0][1]) for _, arg := range results[1:] { fmt.Println("Arg:", arg[2]) }
Pendekatan ini membolehkan penghuraian rentetan yang cekap dengan struktur arahan yang jelas.
Atas ialah kandungan terperinci Bagaimana untuk Menangkap Berbilang Hujah dalam Go Menggunakan Ungkapan Biasa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!