关键字邻近匹配-选项?

| 我有一个关键字数组的情况。我想在给定的字符串中找到它们的匹配项,并在每个字符串之前和之后返回x个单词。 我可以编写一个循环引擎,该循环引擎遍历每个数组,返回给定的索引,并基于这些循环执行串联的子字符串,但这似乎有点冗长。 我听说过Lucene,但是不确定实现一个完整的框架是否值得。另外,如果可能的话,如何使用Lucene完成? 谢谢。     
已邀请:
        也许正则表达式会有所帮助... 这将建立一个匹配字符串(之前最多3个单词)关键字(之后最多3个单词)的列表 编辑:我错过了几个0和一些@s。再试一次。
private static void GetMatches (string s)
{
   string[] keywords = {\"if\", \"while\", \"do\"};
   int x = 3; // words before and after
   string ex =
      @\"(\\w+\\W+){0,\" + x + @\"}\\b(\" + string.Join(\"|\", keywords) + @\")\\b\\W+(\\w+\\W+){0,\" + x + @\"}\";
   Regex regex = new Regex(ex);
   List<string> matches = new List<string>();
   foreach (Match match in regex.Matches (s))
   {
      matches.Add(match.Value);
   }
}
    

要回复问题请先登录注册