Kegagalan Padanan Regex dalam Go
Seorang pengguna menghadapi masalah apabila corak ungkapan biasa gagal dipadankan dalam Go. Coretan kod cuba untuk mengesahkan rentetan bentuk "parameter=0xFF", mengikut corak regex "^. =b0xA-Fb$". Walau bagaimanapun, fungsi MatchString() mengembalikan ralat palsu dan sifar, tidak seperti dalam Python di mana perlawanan berjaya.
Menyahpepijat Kod Go
Untuk menyelesaikan isu, pengguna harus mempertimbangkan untuk menggunakan rentetan mentah literal sebagai rentetan corak. Dalam Go, literal rentetan mentah disertakan dalam tanda belakang '`' dan bukannya tanda petikan standard '"'. Konvensyen ini menghalang aksara melarikan diri '' daripada ditafsirkan dalam rentetan.
Kod Go Dibetulkan
Kod Go yang diperbetulkan menggunakan literal rentetan mentah ialah:
package main import ( "fmt" "regexp" ) func main() { var a string = "parameter=0xFF" var regex string = `^.+=\b0x[A-F][A-F]\b$` result, err := regexp.MatchString(regex, a) fmt.Println(result, err) }
Output Jangkaan
Selepas menggunakan literal rentetan mentah, output yang dijangkakan ialah:
true <nil>
Ini menunjukkan bahawa rentetan input sepadan dengan format yang diingini, seperti yang dimaksudkan.
Atas ialah kandungan terperinci Mengapa Padanan Go Regex Saya Gagal, Tetapi Python Berjaya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!