弹性搜索正则表达式从右边获取最后7位数

时间:2016-10-19 07:36:07

标签: regex elasticsearch pattern-matching sense

我的数据索引格式为676767 2343423 2344444 32494444.我需要一个正则表达式来设置右边最后7位的anlayser。出口输出:2494444。我们尝试过的模式[0-9] {7}无效。

1 个答案:

答案 0 :(得分:1)

在ElasticSearch中,模式为anchored by default。这意味着,您不能依赖部分匹配,您需要匹配整个字符串并捕获最后连续7位

使用

.*([0-9]{7})

,其中

  • .* - 将匹配换行以外的任何0 +字符(尽可能多),然后回溯以匹配......
  • ([0-9]{7}) - 将7位数字放入Capture组1。

如果在正则表达式模式中定义了捕获组,则Sense插件会返回捕获的值,因此,不需要执行其他提取工作(或组访问工作)。