微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

关键字邻近匹配-选项?

如何解决关键字邻近匹配-选项?

| 我有一个关键字数组的情况。我想在给定的字符串中找到它们的匹配项,并在每个字符串之前和之后返回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);
   }
}
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。