//------------------------------------------------------------------------------
//
// 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
}
}