public static CleanDateTimeResult Clean(string name, IReadOnlyList <Regex> cleanDateTimeRegexes) { CleanDateTimeResult result = new CleanDateTimeResult(name); var len = cleanDateTimeRegexes.Count; for (int i = 0; i < len; i++) { if (TryClean(name, cleanDateTimeRegexes[i], ref result)) { return(result); } } return(result); }
private static bool TryClean(string name, Regex expression, ref CleanDateTimeResult result) { var match = expression.Match(name); if (match.Success && match.Groups.Count == 5 && match.Groups[1].Success && match.Groups[2].Success && int.TryParse(match.Groups[2].Value, NumberStyles.Integer, CultureInfo.InvariantCulture, out var year)) { result = new CleanDateTimeResult(match.Groups[1].Value.TrimEnd(), year); return(true); } return(false); }
private static CleanDateTimeResult Clean(string name, Regex expression) { var result = new CleanDateTimeResult(); var match = expression.Match(name); if (match.Success && match.Groups.Count == 4) { if (match.Groups[1].Success && match.Groups[2].Success && int.TryParse(match.Groups[2].Value, NumberStyles.Integer, CultureInfo.InvariantCulture, out var year)) { name = match.Groups[1].Value; result.Year = year; result.HasChanged = true; } } result.Name = name; return(result); }
private CleanDateTimeResult Clean(string name, string expression) { var result = new CleanDateTimeResult(); var match = _iRegexProvider.GetRegex(expression, RegexOptions.IgnoreCase).Match(name); if (match.Success && match.Groups.Count == 4) { int year; if (match.Groups[1].Success && match.Groups[2].Success && int.TryParse(match.Groups[2].Value, NumberStyles.Integer, CultureInfo.InvariantCulture, out year)) { name = match.Groups[1].Value; result.Year = year; result.HasChanged = true; } } result.Name = name; return(result); }