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:
Ini memastikan padanan yang tepat untuk Sortesindex[persons]{Sortes} dalam ujian rentetan, tidak termasuk padanan seperti Isihan.
Pilihan Alternatif
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!