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

问题描述

我有一个数组[“ 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]$/ )])

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...