solr DIH:RegExTransformer

solr DIH: RegExTransformer

目前,我需要对以下第三列应用转换:

ACAC | 0 | 01
ACAC | 0 | 0101
ACAC | 0 | 0102
ACAC | 0 | 010201

我需要将 "010201" 转换为 "01/02/01"

首先我需要:

  1. trim 所有结尾 0 个字符
  2. 拆分每 2 个数字并添加 "/" 个字符。

此转换的上下文在 solr data import handler transformers 内部,但它在内部使用 java 正则表达式库。

有办法得到吗?

我试过使用这个正则表达式:

目前,我需要对以下第三列应用转换:

ACAC | 0 | 01
ACAC | 0 | 0101
ACAC | 0 | 0102
ACAC | 0 | 010201

我需要将 "010201" 转换为 "01/02/01"

首先我需要:

  1. trim 所有结尾 0 个字符
  2. 拆分每 2 个数字并添加 "/" 个字符。

此转换的上下文在 solr data import handler transformers 内部,但它在内部使用 java 正则表达式库。

有办法得到吗?

(\d[1-9]{1})

它代表我:

01/04/01/

并且需要:

01/04/01

替换表达式为:

$&/

有什么想法吗?

您可以使用

\d{2}(?=(?:\d{2})+$)

替换为[=12=]/,见regex demo.

详情

  • \d{2} - 两位数
  • (?=(?:\d{2})+$) - 确保在字符串末尾出现一个或多个两位数的正向前瞻。

替换中的[=15=]代表整场比赛

RegExTransformer代码中,使用

<field column="colname" regex="\d{2}(?=(?:\d{2})+$)" replaceWith="[=11=]/" />