Mengakses kumpulan penangkap bernama dalam ungkapan biasa .NET
Mengakses kumpulan penangkap bernama dalam ungkapan biasa .NET memerlukan penggunaan atribut MatchCollection.Groups
, menggunakan nama kumpulan penangkapan sebagai indeks. Mari selesaikan isu yang anda hadapi dalam kod anda:
<code class="language-csharp">string page = Encoding.ASCII.GetString(bytePage); Regex qariRegex = new Regex("<td><a href=\"(?<link>.*?)\">(?<name>.*?)</a></td>"); MatchCollection mc = qariRegex.Matches(page); CaptureCollection cc = mc[0].Captures; MessageBox.Show(cc[0].ToString());</code>
Kod ini cuba mendapatkan semula nilai kumpulan penangkap dengan mengakses koleksi Captures
, tetapi ia hanya mendapatkan semula keseluruhan rentetan yang dipadankan. Untuk mengakses kumpulan penangkap bernama tertentu, anda perlu menggunakan atribut MatchCollection.Groups
seperti ini:
<code class="language-csharp">foreach (Match m in mc) { MessageBox.Show(m.Groups["link"].Value); // 将 "link" 替换为任何其他命名捕获组名称 }</code>
Dengan menggunakan nama kumpulan menangkap (contohnya, "pautan") sebagai indeks atribut MatchCollection.Groups
, anda boleh mendapatkan semula nilai kumpulan penangkap bernama khusus itu. Dalam contoh ini, ungkapan m.Groups["link"].Value
mendapatkan semula nilai kumpulan penangkapan bernama "pautan".
Atas ialah kandungan terperinci Bagaimana Saya Mengakses Kumpulan Menangkap Dinamakan dalam .NET Regex?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!