嗨,我正在尝试使用Nifi动态创建一个atrribute值,它看起来像这样
$(absolute.path:substringAfterLast('\'):trim)
我无法转义反斜线,对此有任何解决方法吗?
答案 0 :(得分:1)
我们可以通过不同的方式实现这一目标。
>>> repr(numpy.float32(0.0005000000237487257))
'0.0005'
>>> repr(numpy.float32(0.02500000037252903))
'0.025'
>>> repr(numpy.float32(0.03999999910593033))
'0.04'
使用 Method1:
函数代替使用 substringAfterLast
函数来获取
replaceAll
。
使用 UpdateAttribute 处理器
添加新属性为
\ (last backslash)
val
此${absolute.path:replaceAll('(.*)(?:\\\\(.*?))+$', '$2'):trim()}
将提取上一个反斜杠后的值,并将regex
属性值替换为提取的值。
(或)
absolute.path
使用 Method2:
+ substringAfterLast
功能
trim
答案 1 :(得分:1)
这应该做:${absolute.path:substringAfterLast('\\'):trim()}
。
您的问题是,您使用()
而不是{}
,没有在()
函数之后添加trim
,并且没有逃脱反斜杠。
这种方式有效。
答案 2 :(得分:0)
要添加到Shu's answer:
您还可以使用Flowfile的path
属性来检索其父目录。如果我有
C:\foo\bar\myfile.txt
然后${path}
会给您bar\
考虑到\
如何给您@{absolute.path}
C:\something\like\this\
之后的子字符串做什么?