Regex 如何在NiFi中为内容处理器上的路由指定正则表达式?
在nifi中,我基于内容进行路由。我正在使用nifi的RouteOnContent,那么,如何通过指定正则表达式来路由呢 我的输入内容是:Regex 如何在NiFi中为内容处理器上的路由指定正则表达式?,regex,apache-nifi,regex-lookarounds,regex-group,regex-greedy,Regex,Apache Nifi,Regex Lookarounds,Regex Group,Regex Greedy,在nifi中,我基于内容进行路由。我正在使用nifi的RouteOnContent,那么,如何通过指定正则表达式来路由呢 我的输入内容是: { "testreg":{ "test1":"test2", "test3":"test4" } } 我想测试流文件内容中是否存在testreg整个内容(word)。 所以,我和 testreg (testreg) *testreg.* (.*testreg.*) 但它与内容不匹配,因此,在Nifi中使用的正确正则表达式是什么 编辑:检查我们正在寻找的模式
{
"testreg":{
"test1":"test2",
"test3":"test4"
}
}
我想测试流文件内容中是否存在testreg
整个内容(word)。
所以,我和
testreg
(testreg)
*testreg.*
(.*testreg.*)
但它与内容不匹配,因此,在Nifi中使用的正确正则表达式是什么 编辑:检查我们正在寻找的模式是否被引号包围并后跟冒号是非常有意义的,因为paten
testreg
也可以出现在其他地方。在这种情况下,我们得到的是最后一场比赛,这不是。因此,最终,这:
[\s\S]*?(?<=")(testreg)(?=":)[\s\S]*?
此演示显示,我们可以捕获并返回所需的
testreg
:
const regex=/[\s\s]*(testreg)[\s\s]*/gm;
常量str=`{
“testreg”:{
“test1”:“test2”,
“test3”:“test4”
}
}`;
常量subst=`1`;
//被替换的值将包含在结果变量中
const result=str.replace(regex,subst);
log('替换结果:',结果)代码>
[\s\S]*(testreg)[\s\S]*
[\w\W]*(testreg)[\w\W]*
[\d\D]*(testreg)[\d\D]*
([\s\S].*?)(testreg)?