我目前正在进行一个项目,在这个项目中,我需要通过代码在word文档中搜索短语和单词。
基本上,一个Word文档将被上传,然后搜索一些单词。做这件事最有效的方法是什么?
编辑:,我更感兴趣的是使用什么来读取文档(也就是说,MS是最好的方式吗?)然后,如果在搜索之前对其进行索引会非常有利(如果是这样呢?)。
编辑:搜索可能会搜索数千个短语。
发布于 2011-08-26 22:33:59
在C#中打开word文档
在此之后,只需使用Contains方法或类似的方法即可。其实也没那么难。你可能想看小写和大写字母的案件。
然后做这样的事情:(伪代码)
string[] stuffToFind = new string[] {"Google", "is your best friend"};
for (int i = 0; i < stuffToFind.Length; i++;)
{
for (int j = 0; j < document.Length; j++)
{
if(document[j].Contains(stuffToFind[i]))
Console.Writeline("Yeay, we found something");
}
}不过,我不太喜欢这个解决方案。它还取决于word document对象是什么样子。
发布于 2011-08-29 02:34:13
Regex是找到模式的好方法。您可以在这里找到有关相同信息的信息:
REGEX
发布于 2011-08-29 02:51:31
基本上,您可以使用MS中的一个名为OpenXML SDK 2的免费库来打开word文档(使用Word 2007和更高版本).这个图书馆的工作不需要安装word .然后,您可以提取文本并搜索它,不管您喜欢什么-例如使用System.Text.RegularExpressions.Regex .
当你提取文本时,你可以用上下文信息(位置等)存储所有单词/短语来索引它。在DB中,当用户给您短语进行搜索时,您只需要从DB中SELECT --索引的设计取决于您--您需要不区分大小写的搜索吗?等。
另一种选择是使用Solr/Lucene进行索引和通过API访问索引,为搜索提供UI .
https://stackoverflow.com/questions/7211129
复制相似问题