和有什么区别 团体 和一个 匹配 在.NET 的正则表达式中?

有帮助吗?

解决方案

A 匹配 是一个对象,指示与目标文本(一部分)匹配的特定正则表达式。A 团体 如果原始正则表达式包含组标记(基本上是括号中的模式),则表示匹配的一部分。例如,使用以下代码:

string text = "One car red car blue car";
string pat = @"(\w+)\s+(car)";
Match m = r.Match(text);

m 将是包含两个组的匹配对象 - 组 1,来自 (\w+), ,捕获了“One”,以及组 2(来自 (car))与“汽车”相匹配。

其他提示

匹配是字符串中与正则表达式匹配的一部分,因此字符串中可能有多个匹配项。

在匹配中,您可以定义匿名或命名组,以便更轻松地拆分匹配。一个简单的例子是创建一个正则表达式来搜索 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(string text),您将得到多个匹配项,每个匹配项由零个、一个或多个组组成。

可以通过按数字或字符串索引来找到这些命名组。上面的例子可以这样使用:

Match match = pattern.Match(urls);
if (!match.Success) 
    continue;
string protocol = match.Groups["protocol"].Value;
string domain = match.Groups[1].Value;

为了让事情变得更有趣,一组可以匹配多次,但我建议开始阅读 文档.

您还可以使用组来生成反向引用,并进行部分搜索和替换,但请阅读更多内容 微软软件定义网络.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top