Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapa Sempadan Kata Ungkapan Biasa (\b) Berlaku Salah dengan Watak Khas?

Mengapa Sempadan Kata Ungkapan Biasa (\b) Berlaku Salah dengan Watak Khas?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-09 05:26:17613semak imbas

Why Do Regular Expression Word Boundaries (b) Misbehave with Special Characters?

Gelagat Sempadan Perkataan untuk Ungkapan dengan Aksara Khas

Apabila menggunakan ungkapan biasa untuk memadankan perkataan, corak sempadan b kadangkala boleh menghasilkan hasil yang tidak dijangka, terutamanya apabila perkataan itu mengandungi khas aksara.

Pertimbangkan frasa "test Sortesindex[persons]{Sortes} text." Memadankan frasa penuh menggunakan bb seharusnya menghalang padanan pada frasa seperti "Isih" sahaja. Walau bagaimanapun, ini tidak berlaku disebabkan oleh ciri-ciri tertentu sempadan perkataan.

b Tingkah Laku dengan Watak Istimewa

Secara formal, b memadankan sempadan antara watak perkataan (w) dan watak bukan perkataan (W), atau permulaan/akhir rentetan. Apabila pola sempadan perkataan diikuti dengan serta-merta oleh aksara khas seperti [ atau }, b hanya memerlukan aksara perkataan selepas aksara khas.

Penyelesaian: Sempadan Perkataan Suai atau Tidak Kabur

Untuk menangani isu ini, sempadan kata suaian atau sempadan kata yang tidak jelas boleh digunakan.

Kata suaian sempadan mengendalikan sebarang gabungan aksara perkataan dan bukan perkataan pada kedua-dua belah corak:

re.search(r'(?:(?!\w)|\b(?=\w)){}(?:(?<=\w)\b|(?<!\w))'.format(re.escape('Sortes\index[persons]{Sortes}')), 'test Sortes\index[persons]{Sortes} test')

Sempadan perkataan yang tidak jelas tidak memerlukan aksara perkataan pada kedua-dua belah corak:

re.search(r'(?<!\w){}(?!\w)'.format(re.escape('Sortes\index[persons]{Sortes}')), 'test Sortes\index[persons]{Sortes} test')

Memilih Jenis Sempadan yang Tepat

Kata suai sempadan lebih serba boleh tetapi membenarkan watak bukan perkataan yang mendahului dan mengekori. Sempadan perkataan yang tidak jelas adalah lebih ketat, memastikan tiada aksara perkataan sekeliling.

Penyesuaian

Corak lihat sekeliling yang digunakan untuk sempadan perkataan adaptif dan tidak jelas boleh disesuaikan berdasarkan keperluan khusus tugasan padanan. Contohnya, untuk hanya memadankan bukan huruf di sekeliling corak, gunakan [^Wd_] bukannya w.

Atas ialah kandungan terperinci Mengapa Sempadan Kata Ungkapan Biasa (\b) Berlaku Salah dengan Watak Khas?. 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