using System.Collections.Generic;
using System.Text.RegularExpressions;
public static void Main()
string str = "you androids don't exactly cover for each other in times of stress. i think youre right it would seem we lack a specific talent you humans " +
"possess i believe it's called empathy";
var sList = new List<string> { "for each other", "other in", "talent", "you humans", "you" };
List<string> parts = new List<string> { str };
foreach (var seperator in sList)
if (!sList.Any(word => word != seperator && word.Contains(seperator)))
parts = parts.SelectMany(part => Regex.Match(part, "(.*) ?(\\b" + seperator + "\\b) ?(.*)|(.+)")
.Where(group => group.Success)
.Select(group => group.Value)
List<string> newParts = new List<string>();
foreach (var part in parts)
if (sList.Contains(part))
newParts.AddRange(Regex.Match(part, "(?:.*) ?(\\b" + seperator + "\\b) ?(?:.*)")
.Where(group => group.Success)
.Select(group => group.Value)
.AddRange(Regex.Match(part, "(.*) ?(\\b" + seperator + "\\b) ?(.*)|(.+)")
.Where(group => group.Success)
.Select(group => group.Value)
.Where(x => !string.IsNullOrWhiteSpace(x))
parts.ForEach(part => Console.WriteLine(part));