Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah Kumpulan Ungkapan Biasa dalam C# Menangkap dan Mengakses Subrentetan Dipadankan?
Kumpulan Ungkapan Biasa dalam C#: Memahami Keputusan Padanan
Pertimbangkan blok kod C# berikut:
<code class="csharp">var pattern = @"\[(.*?)\]"; var matches = Regex.Matches(user, pattern); if (matches.Count > 0 && matches[0].Groups.Count > 1) ...</code>
Ini kod menggunakan ungkapan biasa untuk mengekstrak teks kurungan daripada rentetan input pengguna. Untuk input "Josh Smith [jsmith]", kod tersebut mengembalikan hasil berikut dengan betul:
matches.Count == 1 matches[0].Value == "[jsmith]"
Walau bagaimanapun, baris berikutnya menimbulkan persoalan:
matches[0].Groups.Count == 2 matches[0].Groups[0].Value == "[jsmith]" matches[0].Groups[1].Value == "jsmith"
Pengumpulan Padanan
Dalam ungkapan biasa, kumpulan digunakan untuk menangkap bahagian tertentu pada perlawanan. Secara lalai, keseluruhan perlawanan ditangkap dalam Kumpulan 0. Kumpulan penangkapan tambahan boleh ditakrifkan menggunakan kurungan.
Dalam kod yang disediakan, ungkapan biasa mentakrifkan satu kumpulan penangkapan, dilambangkan dengan (.*?). Kumpulan ini menangkap teks dalam kurungan segi empat sama (jsmith dalam kes ini). Oleh itu:
Kumpulan Bersarang
Dalam ungkapan biasa yang lebih kompleks, adalah mungkin untuk mempunyai kumpulan bersarang. Dalam kes ini, setiap kumpulan mengandungi set tangkapan sendiri. Walau bagaimanapun, dalam kod yang diberikan, hanya terdapat satu tahap pengelompokan, jadi:
Pertimbangan Tambahan
Atas ialah kandungan terperinci Bagaimanakah Kumpulan Ungkapan Biasa dalam C# Menangkap dan Mengakses Subrentetan Dipadankan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!