Dataweave:将正则表达式模式匹配到数组的每个元素

Dataweave: Match Regex Pattern to each element of Array

我有一个数组 ["NJK","NST","NIR"] 我想遍历它并用这个模式匹配它的每个元素 /^N.*[^1]$/ (Starts与 N 并且不以 1) 和 return '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 并且只有 return 单个布尔值,您可以使用 some )

输入:

%dw 2.0
import * from dw::core::Arrays
var sample = ["NJK","NST","NIR"]
output application/json
---
sample some ($ matches /^N.*[^1]$/ )

输出:

true

选项 3: 您还可以将 NOT isEmptymatches (即:!isEmpty(<expression>).

输入:

%dw 2.0
var sample = ["NJK","NST","NIR"]
output application/json
---
!isEmpty(sample[?($ matches /^N.*[^1]$/ )])

输出:

true