【问题标题】:How to use Regex Capturing Group variable in NiFi Expression Language?如何在 NiFi 表达式语言中使用正则表达式捕获组变量?
【发布时间】:2020-06-22 20:13:09
【问题描述】:

我正在尝试使用 NiFi 替换所有文本文件行中的日期格式。该文件如下所示:

ABCDE,20200619,23.8
FGHIJ,20200619,14.5
...

我正在尝试使用 ReplaceText 处理器将 20200619 更改为 2020-06-19。我已经使正则表达式匹配日期((20\d{6},)),并且我检查了它是否正常工作:当我在Replacement value 中写入$1 TESTING, 时,它按预期工作(单行文件看起来像ABCDE,20200619, TESTING,23.8)。

问题是当我尝试使用表达式语言和:substring 函数时。这是我在Replacement value 中的代码:

${$1:substring(0, 4)}-${$1:substring(4, 6)}-${$1:substring(6, 8)}

但我收到以下错误:

NiFi Error

看起来表达式语言无法访问我的 $1 变量。如何在表达式语言中访问我的 Regex Capturing Group 变量?

这是我的处理器:

NiFi Processor

【问题讨论】:

    标签: apache-nifi


    【解决方案1】:

    我找到了答案:当尝试访问 ${...} 中的 Regex Capturing Group 时,我们需要将它与撇号一起使用,所以这样的代码可以工作:

    ${'$1':substring(0, 4)}-${'$1':substring(4, 6)}-${'$1':substring(6, 8)}
    

    【讨论】:

    • 在帖子和解决方案方面做得很好。你应该能够接受它并给自己更多的代表信用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-05
    • 1970-01-01
    • 2012-01-02
    • 2018-03-11
    • 1970-01-01
    相关资源
    最近更新 更多