给定一个简单的正则表达式,如下所示:^(\d+\D+\d+)(.*)
和一个字符串来解析为15-APR-2012 @ 11:00:00
使用预期 的[$1]$2
产量替换。[15-APR-2012] @ 11:00:00
我的问题是,当对此调用 Regex.Matches 时,我在索引 0 处收到一个匹配项,并且整个字符串:15-APR-2012 @ 11:00:00
显示为匹配项。但是真的有2场比赛。我怎样才能得到两场比赛?我应该看到索引 0 和索引 12。我使用的代码来自另一个 SO 线程:
// Get a collection of matches.
MatchCollection matches = Regex.Matches(inPutString, regexptrn);
foreach (Match match in matches)
{
foreach (Capture capture in match.Captures)
{
retVal += String.Format("Index={0}, Value={1}", capture.Index, capture.Value) + Environment.NewLine;
}
}
我对 .Matches() 的真正作用有什么误解吗?
好的。这是一个后续相同的字符串,新的正则表达式 "(..)(...)" 替换为 [$1]{$2} 导致 [10]{-AU}[G-]{201}[2 ]{@ 1}[1:]{45:}38 我们期待这个。
然而,比赛给出了这个:
Index=0, Value=10-AU
Index=5, Value=G-201
Index=10, Value=2 @ 1
Index=15, Value=1:45:
这表明 Matches 查看整个模式而不是其组。现在如何获得小组比赛