Tertib Keutamaan Operator Ungkapan Biasa (..|.. ... ..|..)
Dalam ungkapan biasa, susunan keutamaan untuk operator paip (|) adalah kiri ke kanan. Ini bermakna bahawa alternatif pertama yang sepadan dengan rentetan input akan dipilih dan sebarang alternatif seterusnya akan diabaikan.
Tingkah laku ini berbeza dengan kelakuan kebanyakan operator binari lain dalam bahasa pengaturcaraan, yang dinilai daripada kanan ke kiri. Contohnya, dalam ungkapan 1 2 * 3, operasi pendaraban dilakukan terlebih dahulu, menghasilkan nilai 6. Operasi tambah kemudiannya dilakukan, menghasilkan nilai akhir 8.
Kiri-ke -keutamaan yang betul bagi pengendali paip masuk akal dalam konteks ungkapan biasa. Ia membenarkan ungkapan untuk memadankan rentetan input dengan cara yang paling cekap yang mungkin, tanpa perlu mengundur dan menilai semula alternatif.
Adalah penting untuk ambil perhatian bahawa pengubah RegexOptions.RightToLeft tidak memberi kesan kepada susunan keutamaan daripada operator paip. Pengubah suai ini hanya mempengaruhi arah di mana enjin regex memeriksa rentetan input.
Sebagai contoh, ungkapan biasa berikut akan sepadan dengan kejadian pertama rentetan "bb" dalam rentetan input "bbac":
(aaa|bb|a)
Jika Regex.Match digunakan untuk mencari padanan dalam "bbac", nilai yang diperolehi ialah "bb". Ini kerana alternatif "bb" muncul sebelum alternatif "a" dalam ungkapan biasa dan enjin regex akan berhenti menilai alternatif sebaik sahaja padanan ditemui.
Jika Regex.Matches digunakan untuk mencari semua padanan dalam "bbac", kedua-dua "bb" dan "a" akan disertakan dalam keputusan. Ini kerana Regex.Matches akan menilai semua alternatif dalam ungkapan biasa, tanpa mengira susunan ia muncul.
Atas ialah kandungan terperinci Bagaimanakah Susunan Keutamaan Mempengaruhi Padanan Operator Paip Ekspresi Biasa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!