Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapa Sempadan Kata `\b` Python Gagal dengan Aksara Khas dalam Ungkapan Biasa?

Mengapa Sempadan Kata `\b` Python Gagal dengan Aksara Khas dalam Ungkapan Biasa?

Patricia Arquette
Lepaskan: 2024-12-09 05:00:10
asal
896 orang telah melayarinya

Why Does Python's `b` Word Boundary Fail with Special Characters in Regular Expressions?

Mengendalikan Sempadan Perkataan untuk Corak dengan Aksara Khas

Modul semula Python menyediakan corak b untuk memadankan sempadan perkataan. Walau bagaimanapun, apabila digunakan dengan corak yang mengandungi aksara khas seperti {}, tingkah laku itu boleh menjadi tidak dijangka.

Pertimbangkan corak Sortesindex[persons]{Sortes}. Menggunakan b untuk memastikan ia sepadan dengan contoh keseluruhan perkataan sahaja, kami akan menjangkakan hasil yang positif dalam "test Sortesindex[persons]{Sortes} text", tetapi ia gagal.

Memeriksa Tingkah Laku Sempadan Kata

Dokumentasi menerangkan b sebagai pemadanan sempadan antara aksara perkataan dan bukan perkataan, atau antara permulaan/akhir rentetan dan watak perkataan.

Dalam pola kami, b sepadan dengan penghujung perkataan, tetapi bukan permulaan secara eksplisit. Kehadiran } sebagai watak istimewa menimbulkan kesamaran bagi b, mengakibatkan tingkah laku yang tidak dijangka.

Menggunakan Sempadan Kata Suaian

Satu penyelesaian ialah menggunakan sempadan kata suaian, yang mempertimbangkan konteks di sekeliling corak. Mereka menyemak aksara bukan perkataan pada kedua-dua sisi atau aksara perkataan di kedua-dua belah, memastikan padanan yang tepat. Ini boleh diwakili sebagai:

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

di mana:

  • (?:(?!w)|b(?=w)) ialah sempadan sebelah kiri, membenarkan padanan pada perkataan sempadan atau untuk aksara bukan perkataan di sebelah kiri.
  • (?:(?<=w)b|(?

Ini memastikan padanan yang tepat untuk Sortesindex[persons]{Sortes} dalam ujian rentetan, tidak termasuk padanan seperti Isihan.

Pilihan Alternatif

  • Sempadan Perkataan Tidak Kekaburan: Serupa dengan sempadan perkataan adaptif, tetapi ia memerlukan ketiadaan sebarang aksara perkataan pada kedua-dua belah corak.
  • Sempadan Ruang Putih: Periksa secara khusus padanan yang coraknya dikelilingi oleh aksara ruang putih.

Memilih Pendekatan yang Betul

Sempadan kata suaian lebih longgar, membolehkan pemadanan dengan aksara bukan perkataan di sekeliling corak. Sempadan perkataan yang tidak jelas adalah lebih ketat, tidak memerlukan aksara perkataan pada kedua-dua hujungnya. Pilih pendekatan yang paling sesuai dengan keperluan pemadanan khusus anda.

Atas ialah kandungan terperinci Mengapa Sempadan Kata `\b` Python Gagal dengan Aksara Khas dalam Ungkapan Biasa?. 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