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"
}
我需要在出现“@”后从字符串中提取数据。示例 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"
}