在 .NET 正規表示式中存取命名捕獲組
在 .NET 正規表示式中存取命名捕獲組需要使用 MatchCollection.Groups
屬性,並使用捕獲組名稱作為索引。讓我們解決您在程式碼中遇到的問題:
<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>
這段程式碼嘗試透過存取 Captures
集合來檢索捕獲組的值,但它只檢索整個匹配的字串。要存取特定的命名捕獲組,您需要使用 MatchCollection.Groups
屬性,如下所示:
<code class="language-csharp">foreach (Match m in mc) { MessageBox.Show(m.Groups["link"].Value); // 将 "link" 替换为任何其他命名捕获组名称 }</code>
透過使用擷取群組名稱(例如,「link」)作為 MatchCollection.Groups
屬性的索引,您可以檢索該特定命名擷取群組的值。在此範例中,m.Groups["link"].Value
表達式會擷取名為「link」的擷取群組的值。
以上是如何存取 .NET Regex 中的命名擷取群組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!