Menyahkod Kelas Aksara "[^][]"
Dalam regex [(?:[^][]|(? R))*], kelas aksara "[^][]" menimbulkan persoalan pelik. Mari kita jelaskan maksudnya dan hilangkan sebarang kekaburan.
Maksud "[^][]"
"[^][]" ialah kelas watak yang sepadan dengan mana-mana aksara kecuali "[" dan "]". Ungkapan ini berkesan mengecualikan "[" dan "]" daripada set aksara yang sepadan.
Penyelesaian Kekaburan
Sesetengah mungkin berpendapat bahawa jujukan "[^]" ialah samar-samar, membawa kepada tafsiran yang mungkin sebagai pelarian untuk "^" dan "]" literal. Walau bagaimanapun, PCRE, enjin regex yang digunakan oleh fungsi preg_, menyelesaikan kekaburan ini. Memandangkan "[^]" tidak sah dalam PCRE, penghuraian mentafsirkan "]" sebagai disertakan dalam kelas aksara, meninggalkan kelas untuk ditutup oleh "]" seterusnya.
Peraturan Kontekstual Tambahan
Kesimpulan
Kelas aksara "[^][]" hanya mengecualikan aksara " [" dan "]" daripada padanan. Tafsiran ini konsisten merentas enjin serasi PCRE, termasuk JavaScript (dengan beberapa pengecualian). Dengan memahami peraturan ini, pengaturcara boleh menggunakan kelas aksara ini dengan berkesan dalam corak regex mereka.
Atas ialah kandungan terperinci Apakah yang dilakukan oleh kelas aksara '[^][]' dalam ungkapan biasa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!