Pengenalan:
Ekspresi biasa memainkan peranan penting dalam pelbagai aplikasi pengaturcaraan, termasuk pengekstrakan data dan manipulasi teks. Memahami cara menggunakan kumpulan ekspresi biasa adalah penting untuk memanfaatkan potensi penuh mereka dalam C#.
Memahami Masalah:
Seorang pembangun mewarisi blok kod yang melakukan pemadanan ungkapan biasa dan bingung dengan hasil yang diperoleh untuk corak regex:
var pattern = @"\[(.*?)\]";
Untuk input pengguna "Josh Smith [jsmith]", hasilnya kelihatan mudah:
matches[0].Value == "[jsmith]"
Walau bagaimanapun, pembangun berasa hairan dengan keputusan tambahan:
matches[0].Groups[1].Value == "jsmith"
Menjawab Soalan:
1. Mengapakah "jsmith" sepadan dengan padanan[0].Kumpulan[1].Nilai?
Corak ungkapan biasa mengandungi satu kumpulan penangkapan, yang diwakili oleh (.*?). Kumpulan penangkap ini sepadan dengan semua aksara antara kurungan segi empat pembukaan dan penutup. Dalam kes ini, ia menangkap "jsmith."
2. Berapa banyak kumpulan akan sepadan[0].Kumpulan sentiasa menyimpan?
Koleksi Kumpulan biasanya menyimpan dua kumpulan: keseluruhan perlawanan dan perlawanan terakhir. Walau bagaimanapun, bilangan kumpulan boleh berbeza-beza berdasarkan kumpulan penangkapan yang dinyatakan dalam corak ungkapan biasa.
Penjelasan Tambahan:
Contoh:
Pertimbangkan corak yang lebih kompleks:
var pattern = @"\[(.*?)\](.*)";
Untuk input "diabaikan [john] John Johnson":
Atas ialah kandungan terperinci Apakah Perbezaan Antara `perlawanan[0].Nilai` dan `padanan[0].Kumpulan[1].Nilai` dalam Ungkapan Biasa C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!