Rumah > Artikel > pembangunan bahagian belakang > Cara Mengendalikan Aksara Bukan ASCII dengan Sempadan Go Regex: Penyelesaian untuk \"é\" dan Beyond?
Go regexp Boundary dengan Aksara Bukan ASCII: Pengubahsuaian Regex
Berurusan dengan aksara bukan ASCII boleh menimbulkan cabaran apabila bekerja dengan biasa Golang ungkapan (regex). Khususnya, pilihan sempadan "b", yang direka bentuk untuk memadankan sempadan aksara, mungkin tidak berkelakuan seperti yang diharapkan apabila menemui aksara Latin seperti "é." Isu ini timbul kerana "b" beroperasi secara eksklusif dengan aksara ASCII.
Untuk menyelesaikan masalah ini, kami boleh membuat sempadan tersuai yang merangkumi julat aksara yang lebih luas melangkaui ASCII. Berikut ialah penyelesaiannya:
<code class="go">package main import ( "fmt" "regexp" ) func main() { r, _ := regexp.Compile(`(?:\A|\s)(vis)(?:\s|\z)`) fmt.Println(r.MatchString("vis")) // Handle case without boundary fmt.Println(r.MatchString("re vis e")) fmt.Println(r.MatchString("revise")) fmt.Println(r.MatchString("révisé")) }</code>
Penjelasan:
Ungkapan biasa yang diubah suai ini menggunakan penggantian berikut:
Ini membolehkan sempadan dipadankan pada permulaan rentetan, pada penghujung rentetan atau pada aksara ruang putih. Aksara Latin seperti "é" kini dianggap aksara biasa dan tidak akan mencetuskan padanan sempadan palsu.
Dengan mengubah suai pilihan sempadan, kami boleh mengendalikan aksara Latin dan aksara bukan ASCII lain dalam ungkapan biasa Go dengan berkesan, memastikan ketepatan tingkah laku yang sepadan.
Atas ialah kandungan terperinci Cara Mengendalikan Aksara Bukan ASCII dengan Sempadan Go Regex: Penyelesaian untuk \"é\" dan Beyond?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!