Match 类
表示单个正则表达式匹配的结果。
由于单个匹配可能涉及多个捕获组,因此 Match 具有返回 GroupCollection 的 Groups 属性。GroupCollection 具有返回每个组的访问器。Match 从 Group继承,因此可以直接访问匹配的整个子字符串。也就是说,Match 实例自身等效于 Match.Groups[0](Visual Basic 中则为 Match.Groups(0))。Match 对象是不可变的,并且没有公共构造函数。
一、方法
名称 | 说明 |
已重载。 确定两个 Object 实例是否相等。 (从 Object 继承。) | |
用作特定类型的哈希函数。GetHashCode 适合在哈希算法和数据结构(如哈希表)中使用。 (从 Object 继承。) | |
获取当前实例的 Type。 (从 Object 继承。) | |
从上一个匹配结束的位置(即在上一个匹配字符之后的字符)开始返回一个包含下一个匹配结果的新 Match。 | |
确定指定的 Object 实例是否是相同的实例。 (从 Object 继承。) | |
返回已传递的替换模式的扩展。例如,如果替换模式为 $1$2,则 Result 返回Groups[1].Value 和 Groups[2].Value(在 Visual Basic 中为 Groups[1].Value 和 Groups[2].Value)的串联。 | |
已重载。 | |
从输入字符串中获取捕获的子字符串。 (从 Capture 继承。) |
二、属性
名称 | 说明 |
按从里到外、从左到右的顺序获取由捕获组匹配的所有捕获的集合(如果正则表达式用RegexOptions.RightToLeft 选项修改了,则顺序为按从里到外、从右到左)。该集合可以有零个或更多的项。 (从 Group 继承。) | |
获取空组。所有失败的匹配都返回此空匹配。 | |
获取由正则表达式匹配的组的集合。 | |
原始字符串中发现捕获的子字符串的第一个字符的位置。 (从 Capture 继承。) | |
捕获的子字符串的长度。 (从 Capture 继承。) | |
获取一个值,该值指示匹配是否成功。 (从 Group 继承。) | |
从输入字符串中获取捕获的子字符串。 (从 Capture 继承。) |
三、 示例
string text = "One car red car blue car";
string pat =@"(\w+)\s+(car)";
// Compile the regular expression.
Regex r = newRegex(pat, RegexOptions.IgnoreCase);
// Match the regular expression patternagainst a text string.
Match m = r.Match(text);
intmatchCount = 0;
while(m.Success)
{
Console.WriteLine("Match"+(++matchCount));
for (int i = 1; i <= 2; i++)
{
Group g = m.Groups[i];
Console.WriteLine("Group"+i+"='" + g + "'");
CaptureCollection cc =g.Captures;
for (int j = 0; j < cc.Count; j++)
{
Capture c = cc[j];
System.Console.WriteLine("Capture"+j+"='" + c + "', Position="+c.Index);
}
}
m = m.NextMatch();
}
源文档 <http://msdn.microsoft.com/zh-cn/library/system.text.regularexpressions.match.nextmatch(VS.80).aspx>