骡子上的字符串比较

Mule MEL String comparision

<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"/>

这对我来说很好,即它验证字符串比较和 return 布尔值。现在,如果我的输入包含附加了 |,(eg:,12-345678|22-345678|33-345678) 的值,我该如何比较它?

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

不确定您要实现的目标,但您可以在 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)]

在 MuleSoft 中,您可以通过名为 EXPRESSION 的组件使用任何 java 代码。