4

我有一个变量 my_variable ,其值为动态 URL,例如 --

http://stackoverflow.com/questions/ask

我想在这个动态 URL 上做一个子字符串来查找最后一个“/”之后的字符串,即在上面提到的 URL 的情况下,我想得到子字符串“ask”

我怎样才能使用 MEL 来做到这一点?

4

4 回答 4

5

您可以使用 java.lang 包中提供的字符串函数。

#[flowVars['my_variable'].substring(flowVars['my_variable'].lastIndexOf('/'))]

希望这可以帮助。

于 2014-05-13T13:30:32.800 回答
2

您可以在 MEL 中使用 JDK 类,实际上这些包是自动导入的(http://www.mulesoft.org/documentation/display/current/Mule+Expression+Language+Reference):

  • java.lang.*
  • java.io.*
  • java.net.*
  • java.util.*
  • java.math.BigDecimal
  • java.math.BigInteger
  • javax.activation.DataHandler
  • javax.activation.MimeType
  • java.util.regex.模式
  • org.mule.api.transformer.DataType
  • org.mule.transformer.types.DataTypeFactory

此流程在端口 8081 上接收请求并返回路径的最后一部分:

<flow name="testedbFlow3">
    <http:inbound-endpoint host="0.0.0.0" port="8081" />
    <expression-transformer expression="#[message.inboundProperties['http.request'].split(&quot;^.*/&quot;)[1]]"/>
</flow>
于 2014-05-12T15:10:18.230 回答
1

您可以在变量上使用基本的 JavaString方法,例如substring()和。lastIndexOf()

于 2014-05-12T05:33:59.883 回答
0
#[flowVars['my_variable'].substring(flowVars['my_variable'].lastIndexOf('/'))]

哪个更简单

于 2015-12-08T06:56:54.300 回答