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

NiFi如何删除属性中多余的%字符以便正确执行urlDecode操作

解决方案

实现代码

在UpdateAttribute处理器中直接使用以下NiFi表达式即可完成需求:

${Name:replaceAll('%(?![0-9a-fA-F]{2})', ''):urlDecode()}

逻辑说明

  • 第一步的replaceAll函数通过正则匹配清除所有无效%符号:所用正则%(?![0-9a-fA-F]{2})为负向预查规则,仅匹配后面没有紧跟两位十六进制字符的%,不会修改正常的URL编码段(例如示例中的%c3%a1会被完整保留)。
  • 针对你给出的示例值name%c3%a1%s\<first>,%a1后面跟着s的冗余%会被匹配删除,处理后得到目标字符串name%c3%a1s\<first>,后续再调用urlDecode()就不会触发格式报错。
  • 该规则完全适配<前字符串长度可变的场景,所有不符合URL编码规范的冗余%都会被自动清理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 16:24:07