.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和指定数组中的[,]有什么区别?