Apabila peralihan kod daripada Ruby ke Go, keserasian ungkapan biasa boleh menjadi satu cabaran. Ruby menggunakan PCRE, manakala Go menggunakan RE2 Google, menyebabkan pembangun memerlukan cara untuk menyesuaikan ekspresi mereka.
Secara khusus, menangkap kefungsian kumpulan, yang membolehkan pengekstrakan data tertentu daripada corak yang dipadankan, memberikan cabaran. Untuk meniru kefungsian ini dalam Go, langkah berikut boleh diambil:
Untuk contoh, untuk mengekstrak tahun daripada rentetan tarikh menggunakan ungkapan biasa (?P
package main import ( "fmt" "regexp" ) func main() { r := regexp.MustCompile(`(?P<Year>\d{4})-(?P<Month>\d{2})-(?P<Day>\d{2})`) fmt.Printf("%#v\n", r.FindStringSubmatch(`2015-05-27`)) fmt.Printf("%#v\n", r.SubexpNames()) }
Kod ini akan mengeluarkan:
[]string{"2015", "05", "27"} []string{""}
Barisan pertama menunjukkan nilai ditangkap mengikut tertib, manakala baris kedua menunjukkan nama kumpulan tangkapan. Dengan menggunakan teknik ini, anda boleh mencapai fungsi kumpulan menangkap yang serupa dalam Go seperti dalam Ruby.
Atas ialah kandungan terperinci Bagaimana untuk Meniru Fungsi Kumpulan Menangkap Ruby dalam Go Regex?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!