为给定方案存储单词的最佳方法

时间:2014-07-31 10:03:49

标签: java regex maven full-text-search project

我正在研究Java项目[Maven]。

我很困惑。我不知道什么是逻辑上的核心。

问题如下: -

给出了句子,并从他们中提取了一些特定的词语。

我找到的解决方案

我制作了一个正则表达式并放入了Constants类。每当我必须添加更多单词时,我只需在正则表达式中添加单词。

这解决了这个问题。

我很困惑

我在想,如果我将数量的文本文件放在资源文件夹中,其中每个文本文件表示一个正则表达式。

REGEX =(?:A | B | C | D)

A,B,C,D = Word(字符串)

这是个好主意吗?如果没有,请另外建议。

2 个答案:

答案 0 :(得分:0)

为什么要在文本文件中保存正则表达式?你正在使用正则表达式的事实看起来像是一个你想要封装的实现细节(除非你想要更强大的功能,但也需要支持正则表达式的开销)。

另外,为什么每个单词都需要新文件?看起来你可能只有一个文件,每行一个单词就是你感兴趣的所有单词。这对于用户来说要比每个文件有一个正则表达式的100个文件要简单得多。

答案 1 :(得分:0)

根据我的理解,您希望从输入字符串中找到一些关键词。这些关键词可以根据您的要求进行扩展 你当前的解决方案是在你的Constant类中创建这个正则表达式(?:A|B|C|D),当你需要它时,你将在这个正则表达式中添加更多的关键词。
如果我的理解没有错,也许,一个建议就是把这个正则表达式放在你的属性文件中,比如这个

REGEX = (?:city|Animal|plant|student)

如果太长,它可能就像这样

REGEX = (?:city|Animal|plant|student|car|computer|clothes|\
        furnature|others)

如果我的理解没有错,你的第二个想法是将关键字作为文件名,并将这些文件放在一个资源文件夹中。因此,您可以获取这些文件名来组成最终的正则表达式。如果你的正则表达式总是固定为(?:A|B|C|D)格式,那么这个解决方案是好的&方便。 (每次添加一个新的关键字文件,您不需要修改任何源代码和属性文件)