我正在尝试使用 NiFi 替换所有文本文件行中的日期格式。该文件如下所示:
ABCDE,20200619,23.8
FGHIJ,20200619,14.5
...
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用 ReplaceText 处理器更改20200619
为2020-06-19
. 我制作了与日期 ( (20\d{6},)
)匹配的正则表达式,并检查了它是否有效:当我写入时$1 TESTING,
,Replacement value
它按预期工作(单行文件看起来像ABCDE,20200619, TESTING,23.8
)。
问题是当我尝试使用表达式语言和:substring
函数时。这是我的代码Replacement value
:
${$1:substring(0, 4)}-${$1:substring(4, 6)}-${$1:substring(6, 8)}
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误:
看起来表达式语言无法访问我的$1
变量。如何在表达式语言中访问我的 Regex 捕获组变量?
这是我的处理器:
我找到了答案:当尝试访问 ${...} 中的 Regex 捕获组时,我们需要将它与撇号一起使用,因此这样的代码有效:
${'$1':substring(0, 4)}-${'$1':substring(4, 6)}-${'$1':substring(6, 8)}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
559 次 |
最近记录: |