Rumah > Java > javaTutorial > Bagaimanakah Saya Boleh Meningkatkan Sokongan Unicode dalam Ungkapan Biasa Java untuk \w dan \b?

Bagaimanakah Saya Boleh Meningkatkan Sokongan Unicode dalam Ungkapan Biasa Java untuk \w dan \b?

Mary-Kate Olsen
Lepaskan: 2024-12-10 11:03:13
asal
218 orang telah melayarinya

How Can I Improve Unicode Support in Java Regular Expressions for w and b?

Persamaan Unikod untuk w dan b dalam Ungkapan Biasa Java

Pelaksanaan regex Java mempunyai sokongan terhad untuk Unicode, menjadikannya sukar untuk memadankan perkataan atau sempadan perkataan dengan tepat. Pelepasan w dan b lalai hanya sepadan dengan aksara ASCII.

Untuk menangani isu ini, pertimbangkan untuk menggunakan fungsi yang menulis semula pelarian ini, menggantikannya dengan takrifan sedar Unikod. Fungsi ini boleh menulis semula 14 charclass escape berikut:

Definisi Melarikan Diri Ditulis Semula:

  • w: Menangkap huruf, digit dan aksara tanda baca tertentu (p{L}pMp{Nd}p{Nl}p{Pc}[p{InEnclosedAlphanumerics}&&p{So}]])
  • W: Tidak termasuk semua aksara yang dipadankan dengan w
  • s: Padan dengan ruang putih Unicode ([u0009-u000Du0020u0085u00A0u1680u180Eu2000-u200Au2028u2029u202Fu205Fu3000])
  • S: Tidak termasuk semua aksara
  • V: Mengecualikan semua aksara yang dipadankan dengan v
  • h: Memadankan ruang putih mendatar Unikod ([u0009u0020u00A0u1680u180Eu2000-u200Au202Fu205Fu3000])
  • H: Mengecualikan semua aksara yang dipadankan dengan h
  • d:

  • b: Memadankan sempadan perkataan dengan mengambil kira aksara perkataan Unikod sahaja
  • B: Memadankan sempadan bukan perkataan dengan mengambil kira aksara perkataan Unikod
  • X: Memadankan grafem lanjutan kelompok
  • R: Memadankan pemisah baris, termasuk baris Unicode pecah
  • Takrifan Sempadan:

Larian sempadan (b dan B) boleh ditulis semula menggunakan logik berikut:

b : (?:(?<=w)(?!w)|(?

B: (?:(?<=w)(?= w)|(?
  • Membetulkan Java dengan Java:
  • Ini fungsi boleh dilaksanakan dalam Java menggunakan kod yang disediakan dalam utas perbincangan asal. Dengan menggunakan kod ini, anda boleh menulis semula corak regex untuk mengendalikan aksara Unicode dengan lebih baik.

    Nota:

    Dalam Java 7, kelas Pattern memperkenalkan bendera UNICODE_CHARACTER_CLASS, yang membolehkan sokongan Unicode untuk ini melarikan diri secara lalai.

    Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Meningkatkan Sokongan Unicode dalam Ungkapan Biasa Java untuk \w dan \b?. 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