From 3f4dd4231d2225ab0d474840038a4de01b5f7391 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20Miguel=20Alm=C3=A1nzar?= Date: Fri, 30 Aug 2013 22:04:43 -0400 Subject: [PATCH] update the gueststars regex to use commas as delimitators --- MediaBrowser.Providers/TV/RemoteEpisodeProvider.cs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/MediaBrowser.Providers/TV/RemoteEpisodeProvider.cs b/MediaBrowser.Providers/TV/RemoteEpisodeProvider.cs index 2470714162..347c77d995 100644 --- a/MediaBrowser.Providers/TV/RemoteEpisodeProvider.cs +++ b/MediaBrowser.Providers/TV/RemoteEpisodeProvider.cs @@ -317,9 +317,12 @@ namespace MediaBrowser.Providers.TV if (actors != null) { // Sometimes tvdb actors have leading spaces - var persons = Regex.Matches(actors, @"([^|()]|\([^)]*\)*)+") + //Regex Info: + //The first block are the posible delimitators (open-parentheses should be there cause if dont the next block will fail) + //The second block Allow the delimitators to be part of the text if they're inside parentheses + var persons = Regex.Matches(actors, @"(?([^|,(])|(?\([^)]*\)*))+") .Cast() - .SelectMany(m => string.IsNullOrWhiteSpace(m.Value) ? new string[] { } : m.Value.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)) + .Select(m => m.Value) .Where(i => !string.IsNullOrWhiteSpace(i) && !string.IsNullOrEmpty(i)); foreach (var person in persons.Select(str => @@ -340,9 +343,9 @@ namespace MediaBrowser.Providers.TV var extraActors = xmlDocument.SafeGetString("//GuestStars"); if (extraActors == null) continue; // Sometimes tvdb actors have leading spaces - var persons = Regex.Matches(extraActors, @"([^|()]|\([^)]*\)*)+") + var persons = Regex.Matches(extraActors, @"(?([^|,(])|(?\([^)]*\)*))+") .Cast() - .SelectMany(m => string.IsNullOrWhiteSpace(m.Value) ? new string[] { } : m.Value.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)) + .Select(m => m.Value) .Where(i => !string.IsNullOrWhiteSpace(i) && !string.IsNullOrEmpty(i)); foreach (var person in persons.Select(str =>