//------------------------------------------------------------------------------ // // // Copyright (c) Microsoft Corporation. All rights reserved. // // //------------------------------------------------------------------------------ // Capture is just a location/length pair that indicates the // location of a regular expression match. A single regexp // search may return multiple Capture within each capturing // RegexGroup. // namespace System.Text.RegularExpressions { //| /// /// /// Represents the results from a single subexpression capture. The object represents /// one substring for a single successful capture. /// //[ Serializable() ] public class Capture { internal String _text; internal int _index; internal int _length; internal Capture(String text, int i, int l) { _text = text; _index = i; _length = l; } // The index of the beginning of the matched capture //| /// /// Returns the position in the original string where the first character of /// captured substring was found. /// public int Index { get { return _index; } } // The length of the matched capture //| /// /// /// Returns the length of the captured substring. /// /// public int Length { get { return _length; } } //| /// /// [To be supplied.] /// public string Value { get { return _text.Substring(_index, _length); } } // The capture as a string //| /// /// /// Returns /// the substring that was matched. /// /// override public String ToString() { return Value; } // The original string internal String GetOriginalString() { return _text; } // The substring to the left of the capture internal String GetLeftSubstring() { return _text.Substring(0, _index); } // The substring to the right of the capture internal String GetRightSubstring() { return _text.Substring(_index + _length, _text.Length - _index - _length); } #if DBG internal virtual String Description() { StringBuilder Sb = new StringBuilder(); Sb.Append("(I = "); Sb.Append(_index); Sb.Append(", L = "); Sb.Append(_length); Sb.Append("): "); Sb.Append(_text, _index, _length); return Sb.ToString(); } #endif } }