Windows 10 Nifi-在流文件属性中使用反斜杠(\)

Windows 10 Nifi-在流文件属性中使用反斜杠(\),windows-10,apache-nifi,Windows 10,Apache Nifi,嗨,我正在尝试用Nifi动态创建一个属性值,它看起来像这样 $(absolute.path:substringAfterLast('\'):trim) 我无法摆脱那个反斜杠,有什么解决办法吗?我们可以用不同的方法来实现 Method1: 不要使用substringAfterLast函数,而是使用replaceAll函数获取后面的值 \(最后一个反斜杠) 使用更新属性处理器 将新属性添加为 val ${absolute.path:replaceAll('(.*)(?:\\\\\\\\(.*))

嗨,我正在尝试用Nifi动态创建一个属性值,它看起来像这样

$(absolute.path:substringAfterLast('\'):trim)

我无法摆脱那个反斜杠,有什么解决办法吗?

我们可以用不同的方法来实现

Method1:

不要使用
substringAfterLast
函数,而是使用
replaceAll
函数获取后面的值

\(最后一个反斜杠)

使用更新属性处理器

  • 将新属性添加为

    val

    ${absolute.path:replaceAll('(.*)(?:\\\\\\\\(.*))+$,'$2'):trim()}

regex
将提取最后一个反斜杠后的值,并用提取的值替换
绝对.path
属性值

(或)

Method2:

使用
substringAfterLast
+
修剪
功能

${absolute.path:substringAfterLast("\\"):trim()}

这应该是:
${absolute.path:substringAfterLast('\\'):trim()}
。 您的问题是,您使用了
()
而不是
{}
,您没有在
trim
函数之后添加
()
,并且没有跳过反斜杠

此方法有效。

要添加到:

您还可以使用流文件的
path
属性来检索其父目录。如果我有

C:\foo\bar\myfile.txt
然后
${path}
将为您提供
bar\


考虑到
{absolute.path}
如何给你
C:\something\this\

我试过了,但是它在第二个反斜杠后逃逸了单引号,这是一个错误吗?@Greg,我编辑了答案,请用这种方法试试。。!!