DataWeave Mule:在特定字符后从字符串数据中提取

DataWeave Mule : Extract from String data after particular character

我需要在出现“@”后从字符串中提取数据。示例 abc@123456 的结果应该是 123456。我在 DataWeave Mule 中这样做。

求推荐

你应该为此使用splitBy,然后通过索引获取你需要的东西:

%dw 1.0
%output application/java

%var data = ("abc@123456" splitBy "@")[1]
---
data

这会将负载设置为字符串:"123456"

或者,您可以使用正则表达式 /.*@(.*)/ 查找最后一次出现的 @ 和 return 后面的组,无论有多少个 @ 符号出现在输入字符串中。

%dw 1.0
%output application/json

%var regex = /.*@(.*)/

%var data1 = ("abc@123456" match regex)[1]
%var data2 = ("xyz@abc@123456" match regex)[1]
%var data3 = ("xy@@z@abc@123456" match regex)[1]
%var data4 = ("name@example.com" match regex)[1]
---

result: { 
    data1: data1,
    data2: data2,
    data3: data3,
    data4: data4 
}

结果如下:

{
  "data1": "123456",
  "data2": "123456",
  "data3": "123456",
  "data4": "example.com"
}