首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >solr DIH: RegExTransformer

solr DIH: RegExTransformer
EN

Stack Overflow用户
提问于 2020-11-05 10:09:17
回答 1查看 140关注 0票数 1

目前,我需要对下面第三列进行转换:

代码语言:javascript
复制
ACAC | 0 | 01
ACAC | 0 | 0101
ACAC | 0 | 0102
ACAC | 0 | 010201

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

所以首先我需要:

  1. 修剪所有结束的0字符
  2. 将每两个数字分开,并添加"/"字符。

此转换的上下文位于solr数据导入处理程序变压器内部,但它在内部使用java库。

不管怎么说,会有什么结果吗?

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

目前,我需要对下面第三列进行转换:

代码语言:javascript
复制
ACAC | 0 | 01
ACAC | 0 | 0101
ACAC | 0 | 0102
ACAC | 0 | 010201

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

所以首先我需要:

  1. 修剪所有结束的0字符
  2. 将每两个数字分开,并添加"/"字符。

此转换的上下文位于solr数据导入处理程序变压器内部,但它在内部使用java库。

不管怎么说,会有什么结果吗?

代码语言:javascript
复制
(\d[1-9]{1})

它象征着我:

代码语言:javascript
复制
01/04/01/

而且需要:

代码语言:javascript
复制
01/04/01

替换表达式是:

$&/

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-06 08:42:57

您可以使用

代码语言:javascript
复制
\d{2}(?=(?:\d{2})+$)

$0/替换,请参阅regex演示

详细信息

  • \d{2} -两位数
  • (?=(?:\d{2})+$) -一个积极的前瞻性,以确保出现一个或多个两位数,直到字符串的末尾。

替补中的$0代表整个比赛。

RegExTransformer代码中,使用

代码语言:javascript
复制
<field column="colname" regex="\d{2}(?=(?:\d{2})+$)" replaceWith="$0/" />
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64695028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档