NiFi属性处理咨询:如何从CHAA001962中提取数字部分001962?
在NiFi中提取属性值里的数字部分
以下是几种简单直接的实现方式:
方法1:使用UpdateAttribute处理器
这是最常用的属性操作方式,无需修改流文件内容:
- 添加UpdateAttribute处理器到流程中
- 配置一个新的输出属性(比如命名为
extracted_num),将其值设置为:
把${your_attribute_name:replaceAll('[^0-9]', '')}your_attribute_name替换成你实际的属性名即可。这个表达式会将属性值里所有非数字的字符替换为空,最终得到001962。
方法2:使用ExtractText处理器
如果需要精准匹配数字序列,可采用该方式:
- 添加ExtractText处理器
- 在
Regular Expression配置项中填入:(\d+) - 在
Destination中指定存储结果的属性名(比如extracted_num) - 确保要处理的属性被选为
Input Attribute(默认是流文件内容,需切换到属性模式)
该正则会匹配属性值中的连续数字,直接提取出001962。
方法3:使用ReplaceText处理器(属性操作模式)
若习惯用ReplaceText,也可以针对属性进行处理:
- 添加ReplaceText处理器,将
Replacement Strategy设为Replace entire text - 在
Replacement Value中填入:${your_attribute_name:replaceAll('[^0-9]', '')} - 开启
Attribute Expression Language支持,确保处理器识别属性表达式。
内容的提问来源于stack exchange,提问作者Rodrigo Hajime Himauari
相关产品推荐
相关产品推荐

