Kumpulan Ungkapan Biasa dalam C#
Dalam blok kod berikut, regex yang disediakan mengekstrak kandungan dalam kurungan segi empat sama:
var pattern = @"\[(.*?)\]"; var matches = Regex.Matches(user, pattern);
Dengan pengguna input == "Josh Smith [jsmith]":
matches.Count == 1 matches[0].Value == "[jsmith]"
Walau bagaimanapun, padankan[0].Kumpulan. Kira == 2, dengan:
matches[0].Groups[0].Value == "[jsmith]" matches[0].Groups[1].Value == "jsmith"
Memahami Koleksi Kumpulan
Dalam kes ini:
Oleh itu, padankan.Kumpulan[1]. Nilai mendapatkan semula kandungan dalam kurungan, "jsmith".
Bilangan Kumpulan dalam Perlawanan
Peraturan berikut mengawal bilangan kumpulan dalam perlawanan:
Dalam contoh yang disediakan, memandangkan corak mengandungi satu kumpulan penangkapan, padanan.Kumpulan. Kiraan akan sentiasa 2. Walau bagaimanapun, ungkapan biasa yang lebih kompleks dengan berbilang kumpulan penangkapan akan menghasilkan lebih banyak kumpulan.
Contoh Tambahan
Pertimbangkan corak dan padanan berikut:
var pattern = @"\[(.*?)\](.*)"; var match = Regex.Match("ignored [john] John Johnson", pattern);
Dalam corak yang lebih kompleks:
var pattern = @"(\[.*?\])+"; var match = Regex.Match("[john][johnny]", pattern);
Memahami konsep ini adalah penting untuk memanfaatkan kuasa kumpulan ekspresi biasa dalam C#.
Atas ialah kandungan terperinci Bagaimanakah Kumpulan Ekspresi Biasa Berfungsi dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!