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

Patricia Arquette
Lepaskan: 2024-10-30 10:17:02
asal
1002 orang telah melayarinya

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!