首页 > 解决方案 > 使用正则表达式从逗号分隔的字符串中提取值

问题描述

我有如下字符串:

7,TEST-31052019-02,CD12345,CD54321,Success,Deliverable Recipients

我想使用提取文本处理器从中提取两个值nifi。一TEST-31052019-02CD54321

我已经尝试VF[A-Z]*-[0-9]*-[0-9]*并且能够提取TEST-31052019-02. 如何CD54321使用相同的正则表达式进行提取?

VF[A-Z]*-[0-9]*-[0-9]*

预期输出:

TEST-31052019-02, CD54321

标签: regexapache-nifi

解决方案


我猜我们希望提取两个值,TEST-31052019-02

([A-Z]+-[0-9]+-[0-9]+)

CD54321

([A-Z0-9]+),[A-Z][a-z]

在这里,我们将,[A-Z][a-z]其用作此捕获组旁边的右边界:

([A-Z0-9]+)

如果我们想组合它们,我们可以使用交替:

([A-Z0-9]+),[A-Z][a-z]|([A-Z]+-[0-9]+-[0-9]+)

演示

正则表达式电路

jex.im可视化正则表达式:

在此处输入图像描述


推荐阅读