Mule MEL字符串比较

时间:2015-06-24 19:14:36

标签: mule

<logger message="id is===#[flowVars.fein.contains(flowVars.clientId)]===" level="INFO" doc:name="Logger"/>
<logger message="compare id is===#[flowVars.fein.contains('12-345678')]===" level="INFO" doc:name="Logger"/>

这对我来说很好,即它验证字符串比较并返回布尔值。现在,如果我的输入包含带有|,(eg:,12-345678|22-345678|33-345678)的值,我该如何比较呢?

在Java中,它是:new ArrayList<String>(Arrays.asList(s.split("\\|"))).contains(inputValues);,它将返回true / false。

2 个答案:

答案 0 :(得分:1)

不确定您要实现的目标,但您可以在MEL中使用相同的Java表达式:

#[Arrays.asList(flowVars.fein.split('\\|')).contains('12-345678')]

还有正则表达式和通配符函数可以提供更复杂的字符串比较:https://developer.mulesoft.com/docs/display/current/Mule+Expression+Language+Reference#MuleExpressionLanguageReference-wildcard

或者您可以利用MVEL投影和折叠:

#[($ in flowVars.fein.split("\\|")).contains(inputValues)]

答案 1 :(得分:-2)

In MuleSoft you can use any java code by a component named EXPRESSION.