Talend-tFileInputRegex

Talend-tFileInputRegex,regex,talend,Regex,Talend,我的目标是使用正则表达式解析多个文本文件,并基于匹配复制文件重命名它(包括文件名中的正则表达式匹配字符串): 使用tFileInputRegex的Talend项目概述: 正则表达式应该找到所有匹配“Invoice-xxxxx”或“Num.Ord-yyyyy”的行 所以我可以有这样的文件(发票-10044165 RI): 或者像这样(Num.Ord-50006427): 我试图弄明白如何让一个工作或正则表达式搜索包含“Num.Ord”或“Invoice”的行。 我已经使用regex解析器进行了在

我的目标是使用正则表达式解析多个文本文件,并基于匹配复制文件重命名它(包括文件名中的正则表达式匹配字符串):

使用tFileInputRegex的Talend项目概述:

正则表达式应该找到所有匹配“Invoice-xxxxx”或“Num.Ord-yyyyy”的行

所以我可以有这样的文件(发票-10044165 RI):

或者像这样(Num.Ord-50006427):

我试图弄明白如何让一个工作或正则表达式搜索包含“Num.Ord”或“Invoice”的行。 我已经使用regex解析器进行了在线测试,这一个很有效:

[\n\r].*(Invoice|Num.Ord)\s*-\s*([^\n\r]*)
当我尝试在Talend component
tFileInputRegex
中导入时,使用适当的符号表示,它不起作用(上没有匹配项或“Num.Ord”):


最后,我用另一个tFileInputRegex Talend组件再次解析,其中的文件被第一个组件拒绝:

Talend作业架构:

您的正则表达式似乎不必要地复杂。不适合你吗?编辑:编辑为包含整行而不仅仅是相关部分可能需要一个DOTALL,请尝试
(?s)。*(Num\\\.Ord | Invoice)\\s*-\\s*([^\n\r]+).
Hi,thx,但Talend上的两种方式都不起作用!我无法理解为什么如果我尝试在线(regex.com)这个regx“([\n\r]).*(Num\.Ord | Invoice)\s*-\s*([^\n\r]+).*”和这个“[\n\r].*Invoice\s*-\s*([^\n\r]*)”产生相同的输出,这实际上是我的目标。我是不是错过了一些要放在泰伦德身上的东西?thxscreenshot关于在线正则表达式测试:以及
     Company XXX, LLC                                          Page Number-            1
 P.O. Box 26610                                        I N V O I C E                      Date       -     02/15/05
 Miami, MI  64196                                                                         Customer   -        20035
                                                                          Num.Ord    -     50006427
                                                                                          Brn/Plt    -    100780000
                                              REMIT TO:                                  
                                                            .                         
                                              126 Ctest
                                              Chicago, IL
[\n\r].*(Invoice|Num.Ord)\s*-\s*([^\n\r]*)
"[\\n\\r].*(Invoice|Num.Ord)\\s*-\\s*([^\\n\\r]*)"