using System; using System.Text.RegularExpressions; namespace MediaBrowser.Controller.Providers { public static class NameParser { static readonly Regex[] NameMatches = { new Regex(@"(?.*)\((?\d{4})\)"), // matches "My Movie (2001)" and gives us the name and the year new Regex(@"(?.*)(\.(?\d{4})(\.|$)).*$"), new Regex(@"(?.*)") // last resort matches the whole string as the name }; /// /// Parses the name. /// /// The name. /// Name of the just. /// The year. public static void ParseName(string name, out string justName, out int? year) { justName = null; year = null; foreach (var re in NameMatches) { Match m = re.Match(name); if (m.Success) { justName = m.Groups["name"].Value.Trim(); string y = m.Groups["year"] != null ? m.Groups["year"].Value : null; int temp; year = Int32.TryParse(y, out temp) ? temp : (int?)null; break; } } } } }