如何使用DataWeave替换字符串中的动态变量生成目标文本?
DataWeave实现动态字符串值替换
下面提供两种直接的实现方式,满足你的需求:
方式一:直接字符串插值(模板明确时首选)
利用DataWeave原生的字符串插值语法$(变量),直接构造目标文本:
%dw 2.0 output application/json // 定义需要替换的变量 var jobName = "test-job" // 可以指定固定日期,或用now()生成当前格式化日期 var targetDate = "2022-10-11" // var targetDate = now() as String {format: "yyyy-MM-dd"} --- "Processing of job $(jobName) started $(targetDate)"
执行后输出:"Processing of job test-job started 2022-10-11"
方式二:replace函数处理模板字符串(模板为传入变量时适用)
如果原模板是一个动态传入的字符串,使用replace结合正则匹配替换占位符:
%dw 2.0 output application/json // 原模板字符串 var template = "Processing of job {$jobName} started ${yyyy-MM-dd}" var jobName = "test-job" var targetDate = "2022-10-11" // var targetDate = now() as String {format: "yyyy-MM-dd"} --- template // 正则匹配{$jobName},注意转义特殊字符{和$ replace /\{\$jobName\}/ with jobName // 正则匹配${yyyy-MM-dd} replace /\{\$yyyy-MM-dd\}/ with targetDate
执行后同样得到目标文本。
内容的提问来源于stack exchange,提问作者Root
相关产品推荐
相关产品推荐

