我想在lucene中匹配来自regexp查询的字符串。
测试字符串:
program-id. acinstal.
java中的正则表达式模式:
^[a-z0-9 ]{6}[^*]\s*(program-id)\.
我如何专门为lucene regexp查询编写此正则表达式以匹配字符串。
答案 0 :(得分:1)
你的正则表达式有两个问题(假设在这里,根据之前的问题,你的测试字符串被索引而没有任何标记化。例如,StringField
):
正则表达式必须与整个术语匹配。没有任何分析,正如我们所假设的那样,这意味着它必须匹配整个字段。在这种情况下,您需要添加.*
以匹配字段的其余部分
由于您必须匹配整个字段,因此不支持锚点,因此请在开头删除^
。
所以应该有效的正则表达式是:
[a-z0-9 ]{6}[^*]\s*(program-id)\..*