Memadankan Keseluruhan Perkataan secara Dinamik dengan Regex
Apabila mencari perkataan tertentu dalam rentetan menggunakan ungkapan biasa (regex), pastikan kami sepadan keseluruhan perkataan adalah penting. Selalunya, kami bergantung pada istilah padanan khusus untuk mengambil kira perkataan yang muncul di tengah, permulaan atau penghujung rentetan. Walau bagaimanapun, terdapat cara yang lebih cekap untuk mencapai ini menggunakan sempadan perkataan.
Sempadan perkataan, diwakili oleh b, menandakan peralihan antara perkataan dan aksara bukan perkataan. Dengan menggunakan konsep ini, kami boleh memudahkan corak padanan kami kepada yang berikut:
match_string = r'\b' + word + r'\b'
Corak ini menentukan bahawa perkataan (diwakili oleh perkataan) mesti disertakan dengan aksara bukan perkataan. Ini menangkap perkataan secara keseluruhan, tanpa mengira kedudukannya dalam rentetan.
Jika kita mempunyai berbilang perkataan untuk dipadankan, kita boleh menggunakan corak berikut:
match_string = r'\b(?:{})\b'.format('|'.join(words))
Corak ini akan dipadankan sebarang perkataan daripada senarai perkataan yang dikelilingi oleh aksara bukan perkataan.
Pengendalian Khas Aksara
Jika perkataan yang hendak dipadankan mengandungi aksara khas, kita perlu melepaskannya menggunakan re.escape sebelum menghantarnya ke corak regex. Ini memastikan bahawa aksara ini dianggap sebagai aksara literal dan bukannya pengendali regex.
Sempadan Kata Yang Tidak Jelas
Dalam sesetengah kes, penggunaan b mungkin tidak mencukupi jika perkataan untuk dipadankan permulaan atau akhir dengan aksara khas. Untuk mengatasinya, kita boleh menggunakan sempadan perkataan yang tidak jelas. Sebagai contoh, kita boleh memadankan perkataan yang bermula dengan tanda seru dan berakhir dengan tanda soal menggunakan:
match_string = r'(?<!\w){}(?!\w)'.format(word)
Whitespace Boundaries
Sebagai alternatif, jika perkataan sempadan ialah aksara ruang putih atau permulaan atau akhir rentetan, kita boleh menggunakan sempadan ruang putih. Sebagai contoh, kita boleh memadankan perkataan yang dikelilingi oleh ruang putih menggunakan:
match_string = r'(?<!\S){}(?!\S)'.format(word)
Ringkasnya, menggunakan sempadan perkataan menyediakan pendekatan yang lebih cekap dan fleksibel untuk memadankan keseluruhan perkataan dalam rentetan. Dengan menggabungkan teknik ini, kami boleh menyelaraskan corak regex kami dan memastikan padanan yang tepat, tanpa mengira kedudukan perkataan atau kehadiran aksara khas.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memadankan Keseluruhan Perkataan Dengan Cekap Menggunakan Ungkapan Biasa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!