You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Lidarr/src/NzbDrone.Core/Parser/RegexReplace.cs

51 lines
1.4 KiB

using System.Text.RegularExpressions;
namespace NzbDrone.Core.Parser
{
public class RegexReplace
{
private readonly Regex _regex;
private readonly string _replacementFormat;
private readonly MatchEvaluator _replacementFunc;
public RegexReplace(string pattern, string replacement, RegexOptions regexOptions)
{
_regex = new Regex(pattern, regexOptions);
_replacementFormat = replacement;
}
public RegexReplace(string pattern, MatchEvaluator replacement, RegexOptions regexOptions)
{
_regex = new Regex(pattern, regexOptions);
_replacementFunc = replacement;
}
public string Replace(string input)
{
if (_replacementFunc != null)
{
return _regex.Replace(input, _replacementFunc);
}
else
{
return _regex.Replace(input, _replacementFormat);
}
}
public bool TryReplace(ref string input)
{
var result = _regex.IsMatch(input);
if (_replacementFunc != null)
{
input = _regex.Replace(input, _replacementFunc);
}
else
{
input = _regex.Replace(input, _replacementFormat);
}
return result;
}
}
}