RegexCapture.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Regex / System / Text / RegularExpressions / RegexCapture.cs / 1 / RegexCapture.cs

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

 
}
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK