You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mule4 DataWeave2.0如何按指定字符去除字符串首尾对应内容

Mule 4 去除字符串首尾指定字符实现方案

Mule 4 自带的trim()函数仅支持去除字符串首尾空格,没有直接内置的支持自定义字符修剪的函数,可通过以下两种方式实现需求:

方法一:使用DataWeave正则替换实现

通过replace函数配合正则匹配首尾指定字符,替换为空即可达到修剪效果,代码示例如下:

%dw 2.0
output application/json
// 输入字符串
var inputStr = "\\/Hello World!\\/Location\\/"
// 需要去除的首尾字符
var targetChars = "\\/"
---
{
    result: inputStr replace /^[$(targetChars)]+|[$(targetChars)]+$/ with ""
}

正则说明:

  • ^[$(targetChars)]+:匹配字符串开头所有属于指定字符集的内容
  • [$(targetChars)]+$:匹配字符串结尾所有属于指定字符集的内容
  • 二者通过|连接表示匹配任意一种情况,统一替换为空字符串即可完成修剪

方法二:自定义通用修剪函数

如果需要去除的字符包含正则特殊字符(如.、*、+等),不想处理转义问题,可以自定义通用修剪函数,代码示例如下:

%dw 2.0
output application/json
// 通用自定义修剪函数:去除str首尾所有属于chars的字符
fun trimCustom(str: String, chars: String) = do {
    var charSet = chars splitBy ""
    // 修剪开头字符
    fun trimStart(s: String) = if (charSet contains s[0]) trimStart(s[1 to -1]) else s
    // 修剪结尾字符
    fun trimEnd(s: String) = if (charSet contains s[-1]) trimEnd(s[0 to -2]) else s
    ---
    trimEnd(trimStart(str))
}
// 输入字符串
var inputStr = "\\/Hello World!\\/Location\\/"
// 需要去除的首尾字符
var targetChars = "\\/"
---
{
    result: trimCustom(inputStr, targetChars)
}

两种方案均可以得到你需要的输出结果:

result = "Hello World!\\/Location"

内容的提问来源于stack exchange,提问作者saiteja0555

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 07:45:02