Regex NiFi:ReplaceTextWithMapping处理器

Regex NiFi:ReplaceTextWithMapping处理器,regex,apache-nifi,Regex,Apache Nifi,我有以下插入声明: 插入temp1值(test1、test2) 插入temp2值(test3) 预期成果: 插入temp1值(100200) 插入temp2值(300) 基本上,我想用value100,200分别替换第一个查询文本test1,test2,第二个查询用value300替换test3。有人可以帮助处理上述用例的映射文件吗 我尝试了以下方法,但没有任何效果 搜索值(正则表达式)替换值 (1)(.*values.*)(.*test1)(.*,)(.*test2) -> $2 val

我有以下插入声明:

  • 插入temp1值(test1、test2)

  • 插入temp2值(test3)

  • 预期成果:

  • 插入temp1值(100200)

  • 插入temp2值(300)

  • 基本上,我想用value
    100
    200
    分别替换第一个查询文本
    test1
    test2
    ,第二个查询用value
    300
    替换
    test3
    。有人可以帮助处理上述用例的映射文件吗

    我尝试了以下方法,但没有任何效果

    搜索值(正则表达式)替换值

    (1)(.*values.*)(.*test1)(.*,)(.*test2) -> $2 val1 $4 val2
    
    (2)(.*values.*)(.*test1) -> $2 val3
    

    如果这就是您需要执行的映射范围,那么一个常规的
    ReplaceText
    处理器就足够了。使用以下设置可获得所需的输出:

    它只检测
    test
    的每个实例,后跟一个数字,并用该数字和
    00
    替换它

    如果需要使用
    ReplaceTextWithMapping
    进行更复杂的查找,则映射文件的格式必须为:

    search_value_1    replacement_value_1
    search_value_2    replacement_value_2
    etc.
    
    搜索值和替换值之间的分隔符为\t

    --------------------------------------------------
    Standard FlowFile Attributes
    Key: 'entryDate'
        Value: 'Wed Dec 07 10:48:24 PST 2016'
    Key: 'lineageStartDate'
        Value: 'Wed Dec 07 10:48:24 PST 2016'
    Key: 'fileSize'
        Value: '66'
    FlowFile Attribute Map Content
    Key: 'filename'
        Value: '56196144045589'
    Key: 'path'
        Value: './'
    Key: 'uuid'
        Value: 'f6b28eb0-73b5-4d94-86c2-b7a5d4cc991e'
    --------------------------------------------------
    insert into temp1 values (100, 200)
    insert into temp2 values (300)
    

    你不接受下面的答案有什么原因吗?