如何在lucene中编写正则表达式?

时间:2016-02-22 11:54:11

标签: java regex lucene

我想在lucene中匹配来自regexp查询的字符串。

测试字符串:

       program-id.  acinstal.

java中的正则表达式模式:

^[a-z0-9 ]{6}[^*]\s*(program-id)\.

我如何专门为lucene regexp查询编写此正则表达式以匹配字符串。

1 个答案:

答案 0 :(得分:1)

你的正则表达式有两个问题(假设在这里,根据之前的问题,你的测试字符串被索引而没有任何标记化。例如,StringField):

  1. 正则表达式必须与整个术语匹配。没有任何分析,正如我们所假设的那样,这意味着它必须匹配整个字段。在这种情况下,您需要添加.*以匹配字段的其余部分

  2. 由于您必须匹配整个字段,因此不支持锚点,因此请在开头删除^

  3. 所以应该有效的正则表达式是:

    [a-z0-9 ]{6}[^*]\s*(program-id)\..*