diff --git a/src/NzbDrone.Core.Test/ParserTests/SingleEpisodeParserFixture.cs b/src/NzbDrone.Core.Test/ParserTests/SingleEpisodeParserFixture.cs
index 96dcec933..3ef34902d 100644
--- a/src/NzbDrone.Core.Test/ParserTests/SingleEpisodeParserFixture.cs
+++ b/src/NzbDrone.Core.Test/ParserTests/SingleEpisodeParserFixture.cs
@@ -131,6 +131,7 @@ namespace NzbDrone.Core.Test.ParserTests
[TestCase("Super.Potatoes.S01.Ep06.1080p.BluRay.DTS.x264-MiR", "Super Potatoes", 1, 6)]
[TestCase("Room 104 - S01E07 The Missionaries [SDTV]", "Room 104", 1, 7)]
[TestCase("11-02 The Retraction Reaction (HD).m4v", "", 11, 2)]
+ [TestCase("Plus belle la vie - S14E3533 FRENCH WEBRIP H.264 AAC (09.05.2018)", "Plus belle la vie", 14, 3533)]
//[TestCase("", "", 0, 0)]
public void should_parse_single_episode(string postTitle, string title, int seasonNumber, int episodeNumber)
{
diff --git a/src/NzbDrone.Core/Parser/Parser.cs b/src/NzbDrone.Core/Parser/Parser.cs
index fca065539..81e3bfdd4 100644
--- a/src/NzbDrone.Core/Parser/Parser.cs
+++ b/src/NzbDrone.Core/Parser/Parser.cs
@@ -166,22 +166,26 @@ namespace NzbDrone.Core.Parser
new Regex(@"^(?
.+?)?(?:(?:[-_\W](?(?[1-9][0-9]|[0][1-9])(?![a-z]|\d+))+",
RegexOptions.IgnoreCase | RegexOptions.Compiled),
- //Episodes with airdate
- new Regex(@"^(?.+?)?\W*(?\d{4})\W+(?[0-1][0-9])\W+(?[0-3][0-9])(?!\W+[0-3][0-9])",
- RegexOptions.IgnoreCase | RegexOptions.Compiled),
-
- //Supports 1103/1113 naming
- new Regex(@"^(?.+?)?(?:(?:[-_\W](?(?(?(?\d{4}(?!\d+|i|p)))+)(\W+|_|$)(?!\\)",
- RegexOptions.IgnoreCase | RegexOptions.Compiled),
+ RegexOptions.IgnoreCase | RegexOptions.Compiled),
//4 digit episode number
//Episodes with a title, Single episodes (S01E05, 1x05, etc) & Multi-episode (S01E05E06, S01E05-06, S01E05 E06, etc)
new Regex(@"^(?.+?)(?:(?:[-_\W](?(?\d{4}(?!\d+|i|p)))+)\W?(?!\\)",
+ RegexOptions.IgnoreCase | RegexOptions.Compiled),
+
+ //Episodes with airdate (2018.04.28)
+ new Regex(@"^(?.+?)?\W*(?\d{4})\W+(?[0-1][0-9])\W+(?[0-3][0-9])(?!\W+[0-3][0-9])",
+ RegexOptions.IgnoreCase | RegexOptions.Compiled),
+
+ //Episodes with airdate (04.28.2018)
+ new Regex(@"^(?.+?)?\W*(?[0-1][0-9])\W+(?[0-3][0-9])\W+(?\d{4})(?!\d+)",
+ RegexOptions.IgnoreCase | RegexOptions.Compiled),
+
+ //Supports 1103/1113 naming
+ new Regex(@"^(?.+?)?(?:(?:[-_\W](?(?(?\d{4})[_.-](?[0-1][0-9])[_.-](?[0-3][0-9])|(?[0-1][0-9])[_.-](?[0-3][0-9])[_.-](?\d{4}))(?!\d)",
- RegexOptions.IgnoreCase | RegexOptions.Compiled);
-
private static readonly Regex SixDigitAirDateRegex = new Regex(@"(?<=[_.-])(?(?[1-9]\d{1})(?[0-1][0-9])(?[0-3][0-9]))(?=[_.-])",
RegexOptions.IgnoreCase | RegexOptions.Compiled);
@@ -360,12 +361,6 @@ namespace NzbDrone.Core.Parser
return m.Value;
});
- var airDateMatch = AirDateRegex.Match(simpleTitle);
- if (airDateMatch.Success)
- {
- simpleTitle = airDateMatch.Groups[1].Value + airDateMatch.Groups["airyear"].Value + "." + airDateMatch.Groups["airmonth"].Value + "." + airDateMatch.Groups["airday"].Value;
- }
-
var sixDigitAirDateMatch = SixDigitAirDateRegex.Match(simpleTitle);
if (sixDigitAirDateMatch.Success)
{