Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara Mengendalikan Aksara Bukan ASCII dengan Sempadan Go Regex: Penyelesaian untuk \"é\" dan Beyond?

Cara Mengendalikan Aksara Bukan ASCII dengan Sempadan Go Regex: Penyelesaian untuk \"é\" dan Beyond?

Patricia Arquette
Patricia Arquetteasal
2024-10-30 10:17:021001semak imbas

How to Handle Non-ASCII Characters with Go Regex Boundaries: A Solution for

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:

  • "b" diganti dengan "(?:A|s)(?:s|z)".
  • "A" mewakili permulaan rentetan.
  • "z" mewakili penghujung rentetan.
  • "s" mewakili ruang putih.

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!

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