Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah '[^][]' Ungkapan Biasa Berfungsi dalam PCRE?

Bagaimanakah '[^][]' Ungkapan Biasa Berfungsi dalam PCRE?

Barbara Streisand
Barbara Streisandasal
2024-11-09 03:44:02877semak imbas

How does the

Memahami Ungkapan Biasa "[^][]":

Ungkapan biasa "[^][]" dalam corak yang disediakan "[(?:[^][]|(?R))*]" sepadan dengan semua aksara yang bukan kurungan segi empat sama ([ atau ]).

Penjelasan:

Pertimbangan Unik:

Tidak seperti enjin regex lain, PCRE (digunakan dalam fungsi "preg_" PHP ) tidak memerlukan melarikan diri [ atau ] dalam kelas aksara. Ini kerana PCRE membezakannya daripada kelas aksara lain.

Selain itu, corak regex "[^]]" tidak samar-samar kerana ] ialah aksara pertama. Ini bermakna ia sepadan dengan aksara diikuti oleh ]. Untuk memadankan a diikuti dengan ], tulis 1.

Mengoptimumkan Corak:

Untuk menjadikan corak lebih boleh diguna semula dan cekap, ia boleh dioptimumkan seperti berikut:

  • ([(?:[^][] |(?-1))* ]): Corak ini menangkap kurungan segi empat sama dengan kurungan bersarang.
  • ([[^][](?:(?-1)[^][])* ]): Corak ini lebih cekap dengan menghapuskan selang seli.

Variasi merentas Bahasa Pengaturcaraan:

Pengubah suai "xx" sebaris, yang diperkenalkan dalam PHP 7.3, membenarkan ruang kosong diabaikan dalam kelas aksara. Walau bagaimanapun, sintaks ini tidak disokong oleh semua perisa regex, seperti Ruby dan JavaScript. Dalam JavaScript, khususnya, "[]" ialah token yang sentiasa gagal dipadankan dan "[^]" sepadan dengan mana-mana aksara.


  1. a]

Atas ialah kandungan terperinci Bagaimanakah '[^][]' Ungkapan Biasa Berfungsi dalam PCRE?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn