【问题标题】:Using a regex expression from property file in a Mule SFTP file connector在 Mule SFTP 文件连接器中使用属性文件中的正则表达式
【发布时间】:2015-11-25 02:09:36
【问题描述】:

我有一个通过正则表达式过滤 SFTP 文件的流程。我使用属性文件来利用 SFTP 连接器的许多设置。我无法做到这一点的一个设置是 file:filename-regex-filter 元素内的正则表达式模式属性。

这是我的 SFTP 连接器。

        <!-- Get the HiTrack files via SFTP -->
        <sftp:inbound-endpoint name="HiTrackInboundSFTPEndpoint"
            doc:name="Get SFTP"
            user="${sftp.origin.user}"
            password="${sftp.origin.password}"
            port="${sftp.origin.port}"
            path="${sftp.origin.path}"
            host="${sftp.origin.host}"
            pollingFrequency="${sftp.origin.pollingFrequency}"
            fileAge="${sftp.origin.fileAge}"
            responseTimeout="${sftp.origin.responseTimeout}"
            tempDir="${sftp.origin.tempDir}" 
            archiveDir="${local.archive.directory}" 
            archiveTempReceivingDir="${local.archive.receiveDir}" 
            archiveTempSendingDir="${local.archive.sendingDir}" 
            useTempFileTimestampSuffix="true">

            <!-- Use RegEx filter to filter only HiTrack files with within the proper date format YYYYMMdd
                 Range of dates are from 19000101 to 20991231 -->
            <file:filename-regex-filter
                pattern="hitrack_(19|20)\d\d(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])_(.*).xml"
                caseSensitive="false" />
        </sftp:inbound-endpoint>

我已经尝试了以下两种模式属性都没有成功。

pattern="#[${regex.filter}]"

pattern="${regex.filter}"

我的属性文件包含所有列出的值,并且除了正则表达式过滤器模式外,效果很好。

regex.filter的属性文件如下:

regex.filter=hitrack_(19|20)\d\d(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])_(.*).xml

我没有收到任何错误;它只是在使用属性表达式时不传递任何有效文件。它仅在显式使用正则表达式时才有效。

对此问题的任何建议或更好的解决方案,我将不胜感激。

【问题讨论】:

    标签: regex file properties mule sftp


    【解决方案1】:

    如果您正在读取 spring 属性,那么您需要转义某些字符,例如 \。所以试试:

    regex.filter=hitrack_(19|20)\\d\\d(0[1-9]|1[012])(0[1-9]|[12][0-9]|3 [01])_(.*).xml

    【讨论】:

    • 我需要使用两个反斜杠 \\ 才能让它在属性文件中工作。所以属性文件看起来像这样:
    • regex.filter=hitrack_(19|20)\\d\\d(0[1-9]|1[012])(0[1-9]|[12][0 -9]|3[01])_(.*).xml
    • 感谢您的帮助! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多