You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在NiFi中提取文本第一行指定字符串存入属性

NiFi 提取指定文本到属性解决方案

方案结论

不需要在SplitText前额外新增处理器,仅通过调整现有处理器的配置即可实现需求,有两种可选实现思路:


实现思路1:拆分前提取(推荐)

如果你后续拆分的所有子FlowFile都需要用到这个提取值,建议在SplitText之前先执行提取,拆分后的子FlowFile会自动继承父FlowFile的属性,无需重复提取:

  1. 在GetFile之后、SplitText之前插入ExtractText处理器
  2. 给ExtractText新增自定义属性,命名为你需要的属性名(比如first_line_suffix),属性值填入如下正则:
    (?s)\A.*?(.{3,4})\R.*
    
    正则说明:
    • (?s)开启单行匹配模式,允许.匹配换行符
    • \A匹配整个文件内容的起始位置
    • .*?非贪婪匹配第一行前半段内容
    • (.{3,4})捕获第一行末尾3-4位任意字符,也就是你需要的目标值
    • \R匹配第一行的换行符
  3. 配置ExtractText的Enable Canonical Equality为false,即可把捕获到的值存入first_line_suffix属性,后续拆分后的所有子FlowFile都会携带该属性。

实现思路2:拆分后提取

如果你只需要第一行对应的子FlowFile携带该属性,不需要传递给其他行的子FlowFile,可以保留你原有的流程顺序:

  1. SplitText按行拆分后,每行对应一个子FlowFile
  2. 在ExtractText中新增自定义属性,属性值填入如下正则:
    ^.*(.{3,4})$
    
  3. 后续通过RouteText筛选出第一行的子FlowFile即可获取目标属性值。

内容的提问来源于stack exchange,提问作者Wanuch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 01:15:03