Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana Memadankan Frasa dengan Watak Khas Menggunakan Modul `re` Python?
Hasil Tidak Dijangka dengan Sempadan Perkataan dan Aksara Khas
Apabila cuba memadankan kehadiran frasa dengan kedua-dua aksara biasa dan khas, pengguna boleh menemui hasil yang tidak dijangka. Menggunakan modul semula Python, corak boleh dilepaskan dan dicari dalam rentetan yang diberikan. Walaupun b lazimnya sepadan dengan sempadan perkataan, kesukaran timbul apabila corak mengandungi aksara khas.
Pertimbangkan contoh frasa "Indeks indeks[orang]{Isih}". Apabila mencari dalam rentetan "test Sortesindex[persons]{Sortes} text" menggunakan re.escape('Sortes\index[persons]{Sortes}') dan b, padanan tidak ditemui. Ini berlaku kerana b memerlukan aksara perkataan untuk mengikut sempadan, yang tidak berlaku apabila aksara khas hadir.
Untuk membetulkannya, padanan aksara bukan perkataan yang jelas atau keadaan hujung rentetan boleh digunakan. Menggantikan b dengan (W|$) membolehkan carian berjaya.
Pendekatan yang lebih komprehensif ialah menggunakan sempadan kata suai:
re.search(r'(?:(?!\w)|\b(?=\w)){}(?:(?<=\w)\b|(?<!\w))'.format(re.escape('Sortes\index[persons]{Sortes}')), 'test Sortes\index[persons]{Sortes} test')
Sempadan kata suai memastikan kehadiran sempadan perkataan tanpa memerlukan aksara perkataan bersebelahan. Ia beroperasi dengan mengecualikan aksara bukan perkataan pada kedua-dua belah corak.
Sebagai alternatif, sempadan perkataan yang tidak jelas berdasarkan tinjauan negatif boleh digunakan:
re.search(r'(?<!\w){}(?!\w)'.format(re.escape('Sortes\index[persons]{Sortes}')), 'test Sortes\index[persons]{Sortes} test')
Tinjauan negatif menjamin ketiadaan perkataan aksara pada kedua-dua belah corak.
Kesimpulannya, apabila memadankan frasa dengan kedua-dua aksara biasa dan khas, padanan aksara bukan perkataan yang jelas, sempadan perkataan penyesuaian atau sempadan perkataan yang tidak jelas harus digunakan untuk memastikan hasil yang diingini.
Atas ialah kandungan terperinci Bagaimana Memadankan Frasa dengan Watak Khas Menggunakan Modul `re` Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!