C#正则表达式问题

匹配一段话包含几个关键词中的一个,且该关键词前5个字符不包含另外几个词怎么写,求指点

用linq写:
string[] keys = { "xxxx", "xxxxx", "xxxxx", "xxxx", "xxxx" };
string s = "...";
if (keys.Any(x => s.Contains(x)) && !keys.GroupBy(x => x.SubString(0, 5)).Where(x => x.Count() > 1).Any())
{
...
}