arrays - Dataweave:将正则表达式模式匹配到数组的每个元素
问题描述
我有一个数组 ["NJK","NST","NIR"] 我想迭代它并将它的每个元素与此模式匹配 /^N.*[^1]$/ (以 N 开头并且没有t 以 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","NST","NIR"]
output application/json
---
sample some ($ matches /^N.*[^1]$/ )
输出:
true
选项 3:您还可以将NOT isEmpty组合与match (ie: !isEmpty(<expression>)
)结合使用。
输入:
%dw 2.0
var sample = ["NJK","NST","NIR"]
output application/json
---
!isEmpty(sample[?($ matches /^N.*[^1]$/ )])
输出:
true
推荐阅读
- ruby-on-rails - 在搜索数据库时解析大型 CSV
- sql - [Amazon](500310) 无效操作:Assert Query 捕获 Query_abort 异常
- typescript - 导入语句中的副作用
- ruby-on-rails - Ruby on Rails http 到 https
- ios - 为 iPhone 中的不同屏幕改变 UITextFields 的高度和间距
- sql - 查询结果为 json 的结果出乎意料
- javascript - 加载新数据后数据表更新按钮
- .net - 如何对等待释放 COM 对象的阻塞终结器线程进行故障排除?
- mysql - Mysql特定的返回值总是像最后一行
- php - 阻止来自其他网站的请求到我的服务器