| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 | 
							- using System;
 
- using System.Text.RegularExpressions;
 
- namespace SharpCifs.Util.Sharpen
 
- {
 
-     internal class Matcher
 
- 	{
 
- 		private int _current;
 
- 		private MatchCollection _matches;
 
- 		private Regex _regex;
 
- 		private string _str;
 
- 		internal Matcher (Regex regex, string str)
 
- 		{
 
- 			this._regex = regex;
 
- 			this._str = str;
 
- 		}
 
- 		public int End ()
 
- 		{
 
- 			if ((_matches == null) || (_current >= _matches.Count)) {
 
- 				throw new InvalidOperationException ();
 
- 			}
 
- 			return (_matches[_current].Index + _matches[_current].Length);
 
- 		}
 
- 		public bool Find ()
 
- 		{
 
- 			if (_matches == null) {
 
- 				_matches = _regex.Matches (_str);
 
- 				_current = 0;
 
- 			}
 
- 			return (_current < _matches.Count);
 
- 		}
 
- 		public bool Find (int index)
 
- 		{
 
- 			_matches = _regex.Matches (_str, index);
 
- 			_current = 0;
 
- 			return (_matches.Count > 0);
 
- 		}
 
- 		public string Group (int n)
 
- 		{
 
- 			if ((_matches == null) || (_current >= _matches.Count)) {
 
- 				throw new InvalidOperationException ();
 
- 			}
 
- 			Group grp = _matches[_current].Groups[n];
 
- 			return grp.Success ? grp.Value : null;
 
- 		}
 
- 		public bool Matches ()
 
- 		{
 
- 			_matches = null;
 
- 			return Find ();
 
- 		}
 
- 		public string ReplaceFirst (string txt)
 
- 		{
 
- 			return _regex.Replace (_str, txt, 1);
 
- 		}
 
- 		public Matcher Reset (CharSequence str)
 
- 		{
 
- 			return Reset (str.ToString ());
 
- 		}
 
- 		public Matcher Reset (string str)
 
- 		{
 
- 			_matches = null;
 
- 			this._str = str;
 
- 			return this;
 
- 		}
 
- 		public int Start ()
 
- 		{
 
- 			if ((_matches == null) || (_current >= _matches.Count)) {
 
- 				throw new InvalidOperationException ();
 
- 			}
 
- 			return _matches[_current].Index;
 
- 		}
 
- 	}
 
- }
 
 
  |