其他提示
匹配是字符串中与正则表达式匹配的一部分,因此字符串中可能有多个匹配项。
在匹配中,您可以定义匿名或命名组,以便更轻松地拆分匹配。一个简单的例子是创建一个正则表达式来搜索 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;
为了让事情变得更有趣,一组可以匹配多次,但我建议开始阅读 文档.
您还可以使用组来生成反向引用,并进行部分搜索和替换,但请阅读更多内容 微软软件定义网络.
不隶属于 StackOverflow