diff --git a/NzbDrone.Core.Test/ParserTest.cs b/NzbDrone.Core.Test/ParserTest.cs index 64f407489..10acb3b2b 100644 --- a/NzbDrone.Core.Test/ParserTest.cs +++ b/NzbDrone.Core.Test/ParserTest.cs @@ -47,6 +47,7 @@ namespace NzbDrone.Core.Test [TestCase("House - S06E13 - 5 to 9 [DVD]", "House", 6, 13)] [TestCase("The Mentalist - S02E21 - 18-5-4", "The Mentalist", 2, 21)] [TestCase("Breaking.In.S01E07.21.0.Jump.Street.720p.WEB-DL.DD5.1.h.264-KiNGS", "Breaking In", 1, 7)] + [TestCase("CSI525", "CSI", 5, 25)] public void ParseTitle_single(string postTitle, string title, int seasonNumber, int episodeNumber) { var result = Parser.ParseTitle(postTitle); diff --git a/NzbDrone.Core/Parser.cs b/NzbDrone.Core/Parser.cs index a9fa7b70e..3e7445e56 100644 --- a/NzbDrone.Core/Parser.cs +++ b/NzbDrone.Core/Parser.cs @@ -35,14 +35,14 @@ namespace NzbDrone.Core new Regex(@"^(?:\W?S?(?\d{1,2}(?!\d+))(?:(?:\-|[ex]|\s){1,2}(?\d{1,2}(?!\d+)))+\W*)+\W?(?!\\)", RegexOptions.IgnoreCase | RegexOptions.Compiled), - //Supports 103/113 naming - new Regex(@"^(?.+?)?\W?(?:\W(?<season>\d+)(?<episode>\d{2}))+\W?(?!\\)", - RegexOptions.IgnoreCase | RegexOptions.Compiled), - //Episodes over 99 (3-digits or more) new Regex(@"^(?<title>.*?)(?:\W?S?(?<season>\d{1,2}(?!\d+))(?:(?:\-|\.|[ex]|\s)+(?<episode>\d+))+)+\W?(?!\\)", RegexOptions.IgnoreCase | RegexOptions.Compiled), + //Supports 103/113 naming + new Regex(@"^(?<title>.+?)?(?:\W?(?<season>\d+)(?<episode>\d{2}))+\W?(?!\\)", + RegexOptions.IgnoreCase | RegexOptions.Compiled), + //Supports Season only releases new Regex(@"^(?<title>.+?)\W(?:S|Season)\W?(?<season>\d{1,2}(?!\d+))+\W?(?!\\)", RegexOptions.IgnoreCase | RegexOptions.Compiled)