NiFi:需要从属性中删除一个字符,同时保留所有其他字符,但表达式有问题
NiFi: Need to remove a character from an attribute while leaving all others, but having trouble with the expression
我有一个包含 URL 编码字符的属性。我需要通过 URL 解码发送它,但由于某些原因,一些编码字符有一个额外的“%”符号。我添加了一个更新属性来尝试修复它,但我遇到了表达式问题。
Attribute: Name; value: name%c3%a1%s\<first> (NOTE: The length of the string before the "<" is variable.)
我需要将其更改为:name%c3%a1s\<first>
,以便删除 a1
之后的 %
。我在 "<"
之前看到过其他字母,所以我不确定如何删除多余的 "%"
但保留字母。当我 运行 ${Name:urlDecode()}
的属性值为 "name%c3%a1s\<first>"
时,它可以工作,但当值为 "name%c3%a1%s\<first>"
.
时会阻塞
你可以使用
${Name:replaceAll('%([a-zA-Z])\b', '')}
详情:
%
- 一个 %
字符
([a-zA-Z])
- 第 1 组:一个 ASCII 字母(您可以使用 \p{L}
来匹配任何字母)
\b
- 单词边界。
替换为
,对第 1 组值的反向引用。
我有一个包含 URL 编码字符的属性。我需要通过 URL 解码发送它,但由于某些原因,一些编码字符有一个额外的“%”符号。我添加了一个更新属性来尝试修复它,但我遇到了表达式问题。
Attribute: Name; value: name%c3%a1%s\<first> (NOTE: The length of the string before the "<" is variable.)
我需要将其更改为:name%c3%a1s\<first>
,以便删除 a1
之后的 %
。我在 "<"
之前看到过其他字母,所以我不确定如何删除多余的 "%"
但保留字母。当我 运行 ${Name:urlDecode()}
的属性值为 "name%c3%a1s\<first>"
时,它可以工作,但当值为 "name%c3%a1%s\<first>"
.
你可以使用
${Name:replaceAll('%([a-zA-Z])\b', '')}
详情:
%
- 一个%
字符([a-zA-Z])
- 第 1 组:一个 ASCII 字母(您可以使用\p{L}
来匹配任何字母)\b
- 单词边界。
替换为 ,对第 1 组值的反向引用。