.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. .net 4.0和.net 4.0.3有什麼區別?
- 3. .NET和ASP.NET有什麼區別嗎
- 4. C#和.NET有什麼區別?
- 5. .NET double和python float有什麼區別?
- 6. C#.net和Visual Basic.net有什麼區別?
- 7. Netduino和.NET Gadgeteer有什麼區別?
- 8. C#regex中的[^]匹配是什麼?
- 9. perl字符串匹配中/ Regex/gm和m/Regex/g之間的區別
- 10. 配置單元中的分區和分區有什麼區別?
- 11. chefspec:謂詞匹配器和屬性之間有什麼區別?
- 12. 模式匹配時=〜和match()有什麼區別?
- 13. 腳本語言和模式匹配技術有什麼區別?
- 14. 匹配方法和=〜運算符有什麼區別?
- 15. /^ 1?$ /和/^1 $ /模式匹配有什麼區別?
- 16. Ruby字符串掃描和匹配有什麼區別
- 17. 有什麼區別`和$(Bash中有什麼區別?
- 18. ()和[]動態分配有什麼區別?
- 19. 通配符和'T'有什麼區別?
- 20. IEnumerable和數組有什麼區別?
- 21. int和char數組有什麼區別?
- 22. CPU和芯片組有什麼區別?
- 23. 元組和compress_pair有什麼區別?
- 24. 組件和指令有什麼區別?
- 25. malloc和數組有什麼區別
- 26. 數組和ArrayList有什麼區別?
- 27. 字典和數組有什麼區別?
- 28. 組件和涼亭有什麼區別?
- 29. 數組和散列有什麼區別?
- 30. Rank和指定數組中的[,]有什麼區別?