mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-07-07 14:52:52 +01:00
merge common implementations and server implementations
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user