Rumah  >  Artikel  >  hujung hadapan web  >  Apakah Perbezaan Antara Set Watak dan Pengelompokan Logik dalam Regex Alternation?

Apakah Perbezaan Antara Set Watak dan Pengelompokan Logik dalam Regex Alternation?

Barbara Streisand
Barbara Streisandasal
2024-10-23 22:24:30456semak imbas

What's the Difference Between Character Sets and Logical Groupings in Regex Alternation?

Selang-seli Dalam Kurungan Persegi: Memahami Set Watak lwn. Kumpulan Logik

Apabila membina ungkapan biasa, adalah penting untuk memahami perbezaan antara set aksara dan kumpulan logik. Set aksara, diwakili oleh kurungan segi empat sama ([]), mentakrifkan set aksara yang mesti mengandungi rentetan yang dipadankan. Kumpulan logik, sebaliknya, diwakili oleh kurungan () dan nyatakan ungkapan alternatif yang boleh dipadankan.

Teka-teki Pergantian Regex

Dalam kes anda, anda cuba memadankan rentetan yang mengandungi 'wd', 'word' atau 'qw' dalam konteks tertentu. Pada mulanya, anda menggunakan [wd|perkataan|qw] dalam percubaan untuk mencipta selang seli. Walau bagaimanapun, pendekatan ini tidak membuahkan hasil yang diinginkan.

Perbezaan Utama

Masalahnya terletak pada fakta bahawa [wd|word|qw] ditafsirkan sebagai set watak. Ini bermakna regex hanya akan memadankan rentetan yang mengandungi mana-mana satu aksara individu 'w', 'd', 'w', 'o', 'r', 'd', 'q' dan 'w'.

Penyelesaian: Pengumpulan Logik

Untuk menggunakan selang dengan betul, anda perlu menggunakan kurungan:

  • (wd|perkataan|qw) kumpulan alternatif menjadi ungkapan logik.
  • (?:wd|word|qw) ialah kumpulan bukan penangkap, yang bermaksud ia tidak mencipta kumpulan tangkapan yang berasingan.

Dengan melampirkan alternatif dalam kurungan, anda menentukan bahawa rentetan mesti mengandungi sama ada 'wd', 'word' atau 'qw' secara keseluruhan. Menggunakan pendekatan ini, regex anda akan berjaya memadankan rentetan seperti "baidu.com.[/?].wd=" atau "baidu.com.[/ ?].perkataan=" atau "baidu.com.[/?].qw=".

Atas ialah kandungan terperinci Apakah Perbezaan Antara Set Watak dan Pengelompokan Logik dalam Regex Alternation?. 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