使用正则表达式的骡分割器没有返回任何结果

时间:2014-08-25 14:04:01

标签: java regex mule mule-studio splitter

我正在尝试在线上拆分csv文件。为此,我在我的流程中尝试使用以下拆分器:

<splitter expression="#[regex('^')]" doc:name="Splitter"/>

<splitter expression="#[regex('\n')]" doc:name="Splitter"/>

<splitter expression="#[regex('.*')]" doc:name="Splitter"/>

但是,虽然文件有很多行,但我在日志中收到以下消息:

Splitter returned no results. If this is not expected, please check your split expression

2 个答案:

答案 0 :(得分:2)

最后,我在这里找到了一个解决方案的教程: http://www.dotnetfunda.com/articles/show/2070/using-mule-studio-to-read-csv-comma-seperated-value-data-from-fileinbo

拆分器必须以这种方式配置:

    <splitter expression="#[StringUtils.split(message.payload, '\n\r')]" doc:name="Splitter" />

这需要在流程中包含以下元素:

<configuration doc:name="Configuration">
    <expression-language autoResolveVariables="true">
        <import class="org.mule.util.StringUtils" />
    </expression-language>
</configuration>

答案 1 :(得分:1)

此表达式适用于拆分CSV文件: -

<splitter expression="#[StringUtils.split(message.payload, '\n\r')]" doc:name="Splitter_For_MultipleRow"/>

如果您的CSV文件有列标题,如姓名,年龄等,您可以使用: -

<splitter expression="#[rows=StringUtils.split(message.payload, '\n\r');ArrayUtils.subarray(rows,1,rows.size())]" doc:name="Splitter_For_MultipleRow"></splitter>