Padankan Seluruh Perkataan Secara Dinamik dalam Rentetan Menggunakan Regex
Untuk memadankan keseluruhan perkataan dalam rentetan, kita boleh menggunakan ungkapan biasa dinamik. Pertimbangkan senario berikut:
Perkataan dalam ayat dipisahkan dengan ruang, tetapi tanda baca mungkin muncul di kedua-dua belah pihak. Untuk mengenal pasti perkataan di tengah rentetan, corak berikut berkesan menghalang padanan perkataan separa dan membenarkan tanda baca:
match_middle_words = " [^a-zA-Z\d ]{0,}" + word + "[^a-zA-Z\d ]{0,} "
Walau bagaimanapun, corak ini gagal padan dengan perkataan pertama atau terakhir kerana ketiadaan pendahuluan atau ruang belakang. Untuk menangani perkara ini, kita boleh menggunakan corak tambahan:
match_starting_word = "^[^a-zA-Z\d]{0,}" + word + "[^a-zA-Z\d ]{0,} " match_end_word = " [^a-zA-Z\d ]{0,}" + word + "[^a-zA-Z\d]{0,}$"
Dengan menggabungkan corak ini, kami memperoleh rentetan berikut:
match_string = match_middle_words + "|" + match_starting_word +"|" + match_end_word
Pendekatan ini memastikan bahawa perkataan ditangkap hanya apabila ia dikelilingi oleh aksara bukan perkataan. Tambahan pula, ia mengendalikan perkataan pada permulaan dan akhir rentetan.
Untuk memudahkan proses ini, kita boleh memanfaatkan sempadan perkataan, dilambangkan dengan b. Sempadan ini sepadan pada permulaan dan akhir rentetan, menghapuskan keperluan untuk corak berasingan untuk perkataan pertama dan terakhir. Corak berikut dengan cekap sepadan dengan keseluruhan perkataan:
match_string = r'\b' + word + r'\b'
Corak ini boleh diubah suai dengan mudah untuk memadankan senarai perkataan:
words_list = ['word1', 'word2', 'word3'] match_string = r'\b(?:{})'.format('|'.join(words_list))
Dengan menggunakan sempadan perkataan, kami menghapuskan keperluan untuk tiga memisahkan corak dan memudahkan proses memadankan keseluruhan perkataan dalam rentetan menggunakan regex dinamik.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memadankan Seluruh Perkataan Secara Dinamik dalam Rentetan Menggunakan Ungkapan Biasa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!