par*_*nza 1 java regex apache-nifi
我正在尝试利用Apache NiFi中的开箱即用处理器ReplaceText来搜索.dsv文件,匹配所有日期时间格式并将它们转换为日期.但是,我不确定如何配置处理器本身.我试图将我的搜索值(搜索值属性)设置为这样的:
(0{0,1}[1-9])|(1/d)|(2/d)|(3[0-1])/(0{0,1}[1-9])|(1[0-2])/([1-9]/d):(0{0,1}/d)|(1/d)|(2[0-4]):(0{0,1}/d)|([1-5]/d)
Run Code Online (Sandbox Code Playgroud)
我的替换值是regex1,匹配$ {time:format("yyyy-MM-dd'")}我还设置了另一个名为time的属性,轮流匹配到 (0{0,1}[1-9])|(1/d)|(2/d)|(3[0-1])/(0{0,1}[1-9])|(1[0-2])/([1-9]/d):(0{0,1}/d)|(1/d)|(2[0-4]):(0{0,1}/d)|([1-5]/d)
这不起作用,我感觉我没有使用ReplaceText.你能帮我吗?
编辑:
我应该包括我正在使用名为Regex Replace and Evaluation Mode整个文本的替换策略.
我相信在Apache邮件列表上回答了类似的问题,以供参考:
我创建了一个模板[1],它显示了如何进行所描述的日期转换的示例.它链接到wiki [2]上的主模板页面,并命名为"DateConversion.xml"
它首先使用ExtractText查找日期字符串并将其提取到名为"date"的属性中.使用的正则表达式为:(\ d {2} - \d {2} - \d {4}\d {2}.\ d {2}.\ d {2})
然后它使用ReplaceText和上面相同正则表达式的搜索值,用$ {date:toDate("dd-MM-yyyy HH.mm.ss")替换它:format("yyyy-MM-dd HH:mm :SS + 0000" )}
[2] https://cwiki.apache.org/confluence/display/NIFI/Example+Dataflow+Templates