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

DataWeave字符串压缩转换求助:连续字符转字符+计数格式

DataWeave实现连续重复字符压缩转换

核心实现脚本

针对将连续重复字符转换为「字符+出现次数」格式的需求,直接用DataWeave正则替换即可完成:

%dw 2.0
output application/json
---
{
    string: payload.string replace /(.)\1*/ with ($0[0] ++ sizeOf($0) as String)
}

代码说明

  • 正则匹配规则:/(.)\1*/ 捕获任意单个字符,以及后续所有连续重复的该字符(\1引用第一个捕获组的字符,*表示零或多次重复)。
  • 替换逻辑:
    • $0 代表整个匹配到的连续字符片段(比如AAAAAA)
    • $0[0] 取片段的第一个字符(即A)
    • sizeOf($0) 获取片段长度(即6),转成字符串后和字符拼接得到A6

测试示例

输入:

{ "string":"AAAAAABBBBCCCDD" }

输出:

{ "string":"A6B4C3D2" }

扩展:单个字符不显示次数

如果需要单个字符仅保留本身(不追加1),可调整替换逻辑:

%dw 2.0
output application/json
---
{
    string: payload.string replace /(.)\1*/ with ($0[0] ++ (if (sizeOf($0) > 1) sizeOf($0) as String else ""))
}

输入{"string":"ABCD"}时,输出为{"string":"ABCD"}。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 13:52:32