如何:Apache Camel,Regex匹配文件

min*_*try 7 regex apache apache-camel

我正在尝试让骆驼做一些文件操作并通过activeMQ经纪人传递它们,我已经从最近退出的人那里拿走了这个项目.

到目前为止我得到了什么:

    <route id="SVLFTPCOPY">
  <from uri="sftp://*****:*******@********/srv/test/?fileName=*2280.xls&amp;noop=true&amp;idempotent=false"/>
    <to uri="file:/srv/data/test/destination/"/>
    <to uri="activemq:queue:svl.ftp.copy"/>
    </route>
Run Code Online (Sandbox Code Playgroud)

它可以运行路由而不会丢失任何错误,但仍然不会将文件复制到本地文件.

有任何想法吗?.

Cla*_*sen 20

是的,如果要根据模式过滤掉文件,则需要使用include/exclude/filter选项.fileName选项适用于单个文件.

因此,在您的情况下,删除fileName选项并将其替换为include=.*2280.xsl.请注意,include是基于Java正则表达式的,因此我们使用点星来表示通配符.更多细节:http://camel.apache.org/file2.ftp组件继承了文件组件99%的选项,因此这就是我引用文件维基页面的原因.

  • 如果能用一个简单的 java 正则表达式“包含”和“排除”示例来更新 Camel WIKI 页面,那就太棒了。 (2认同)

Pet*_*ler 7

使用include使用Java正则表达式的选项:

include=.*2280\\.xsl
Run Code Online (Sandbox Code Playgroud)

请注意\\点之前.

或者,使用antInclude:

antInclude=*2280.xsl
Run Code Online (Sandbox Code Playgroud)