问题描述
我有一个数组[“ NJK”,“ NST”,“ NIR”]我要对其进行迭代,并使用/ ^ N匹配它的每个元素。* [^ 1] $ /(以N开头并且不以1)结尾,即使出现了这种情况也返回“ true”。如何使用dataweave遍历数组?
解决方法
您可以使用 matches
来匹配您的REGEX模式。
选项1:(如果与您所使用的模式匹配,它将用布尔值替换。)
输入:
%dw 2.0
import * from dw::core::Arrays
var sample = ["NJK","NST","NIR"]
output application/json
---
sample map ($ matches /^N.*[^1]$/ )
输出:
[
true,true,true
]
选项2:((如果要检查是否有任何一项是 matched
,并且仅返回一个布尔值,则可以使用 some
)
输入:
%dw 2.0
import * from dw::core::Arrays
var sample = ["NJK","NIR"]
output application/json
---
sample some ($ matches /^N.*[^1]$/ )
输出:
true
选项3:,您还可以将 NOT isEmpty 与匹配项 结合使用(即:{{1} }) 。
输入:
!isEmpty(<expression>)
输出:
%dw 2.0
var sample = ["NJK","NIR"]
output application/json
---
!isEmpty(sample[?($ matches /^N.*[^1]$/ )])