Apakah ada cara untuk mendapatkan nama grup yang ditangkap di C #?
string line = "No.123456789 04/09/2009 999";
Regex regex = new Regex(@"(?<number>[\d]{9}) (?<date>[\d]{2}/[\d]{2}/[\d]{4}) (?<code>.*)");
GroupCollection groups = regex.Match(line).Groups;
foreach (Group group in groups)
{
Console.WriteLine("Group: {0}, Value: {1}", ???, group.Value);
}
Saya ingin mendapatkan hasil ini:
Grup: [Saya tidak tahu apa yang harus dimasukkan di sini], Nilai: 123456789 04/09/2009 999 Grup: nomor, Nilai: 123456789 Grup: tanggal, Nilai: 04/09/2009 Kelompok: kode, Nilai: 999
Cara terbersih untuk melakukannya adalah dengan menggunakan metode ekstensi ini:
Setelah metode ekstensi ini diterapkan, Anda bisa mendapatkan nama dan nilai seperti ini:
sumber
Sejak .NET 4.7, ada
Group.Name
properti yang tersedia .sumber
Anda harus menggunakan
GetGroupNames();
dan kodenya akan terlihat seperti ini:sumber
Kelas Regex adalah kuncinya!
http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex.groupnamefromnumber.aspx
sumber
group.Index
ini adalah posisi awal kelompok pertandingan dalam teks asli. Bukan "indeks" grup di regex.