.NET RegEx中的Group和Match之間的區別是什麼?.NET RegEx中的組和匹配有什麼區別?
5
A
回答
6
2
匹配是匹配正則表達式的字符串的一部分,因此可能會有多個字符串匹配。
在匹配中,您可以定義匿名或已命名的組,以便更容易地分割匹配。一個簡單的例子是創建一個正則表達式來搜索URL,然後使用裏面的組來查找協議(http),域(www.web.com),路徑(/lol/cats.html)和參數以及哪些不是。
// Example I made up on the spot, probably doesn't work very well
"(?<protocol>\w+)://(?<domain>[^/]+)(?<path>/[^?])"
一個單一的模式可以發現多次在字符串中,正如我所說的,因此,如果您使用Regex.Matches(字符串文本),你會得到多個匹配,分別由零,一個或多個組的。
這些命名組可以通過數字索引或字符串找到。可以使用上面這樣的例子:
Match match = pattern.Match(urls);
if (!match.Success)
continue;
string protocol = match.Groups["protocol"].Value;
string domain = match.Groups[1].Value;
爲了讓事情更有趣,一組可以匹配多次,但後來我建議開始閱讀documentation。
您還可以使用組生成反向引用,並進行部分搜索和替換,但是請閱讀MSDN上的更多內容。
相關問題
- 1. 聚類和匹配有什麼區別?
- 2. C#.net和Visual Basic.net有什麼區別?
- 3. C#和.NET有什麼區別?
- 4. .NET和ASP.NET有什麼區別嗎
- 5. .NET double和python float有什麼區別?
- 6. C#regex中的[^]匹配是什麼?
- 7. 腳本語言和模式匹配技術有什麼區別?
- 8. 匹配方法和=〜運算符有什麼區別?
- 9. Ruby字符串掃描和匹配有什麼區別
- 10. 有什麼區別`和$(Bash中有什麼區別?
- 11. ()和[]動態分配有什麼區別?
- 12. 數組和ArrayList有什麼區別?
- 13. 數組和散列有什麼區別?
- 14. IEnumerable和數組有什麼區別?
- 15. 字典和數組有什麼區別?
- 16. int和char數組有什麼區別?
- 17. 組件和涼亭有什麼區別?
- 18. 元組和compress_pair有什麼區別?
- 19. Rank和指定數組中的[,]有什麼區別?
- 20. .NET中的KeyValuePair和Hashtable有什麼區別?
- 21. .NET中的System.Collections,System.Collections.Specialized和System.Collections.Generic有什麼區別?
- 22. .Net中的ConcurrentQueue和BlockingCollection之間有什麼區別?
- 23. .NET中的「global :: System」和「System」有什麼區別?
- 24. .NET中的X509Certificate2和X509Certificate有什麼區別?
- 25. .net中的readonly屬性和函數有什麼區別?
- 26. .Net中的App.Config和Web.Config有什麼區別?
- 27. 重新模塊中的組和組之間有什麼區別?
- 28. Smalltalk中的數組和字面數組有什麼區別?
- 29. ==和===有什麼區別?
- 30. ==和===有什麼區別?