java如何扩展WhitespaceTokenizer?
我需要使用一个标记器来拆分空格上的单词,但是如果空格是带双括号的,它就不会拆分。这里有一个例子:
My input-> term1 term2 term3 ((term4 term5)) term6
应生成此令牌列表:
term1, term2, term3, ((term4 term5)), term6.
我认为我可以通过扩展LuceneWhiteSpaceTokenizer来获得这种行为。如何执行此扩展
还有其他解决办法吗
提前谢谢
# 1 楼答案
我没有尝试扩展标记器,但我这里有一个很好的(我认为)带有正则表达式的解决方案:
以及一种方法,该方法通过从reg ex返回数组的匹配组拆分字符串。代码示例:
}
输出:
希望这对你有帮助
请注意,以下代码使用了通常的
split()
:将不返回任何内容或不返回所需内容,因为它只检查分隔符
# 2 楼答案
您可以通过扩展} 来读取
WhitespaceTokenizer
来实现这一点,但是我希望如果您编写一个^{WhitespaceTokenizer
并根据括号的数量将连续的标记粘贴在一起,会更容易重写^{} 是编写类似
Tokenizer
的类时的主要任务。我曾经亲自做过这件事the result可以作为一个例子(尽管由于技术原因,我无法使我的类成为TokenFilter
)