//------------------------------------------------------------------------------ // // 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. /// #if !SILVERLIGHT [ Serializable() ] #endif 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 } }