mule-studio - splitBy regex 问题 dataweave 2.0

标签 mule-studio dataweave

我正在尝试使用 dataweave 2.0 中的 splitBy 拆分点符号字符串,使用简单的正则表达式来避免拆分转义字符串,在线测试正则表达式按预期工作,但 dataweave 函数输出不同的结果。

'root.sources.data.`jenkins.branch.BranchSource`.source.traits' splitBy(/[^\.`]+|"([^`]*)"|`([^`]*)`/)

输出:
["", ".", ".", ".", ".", "." ]

预期的:
["root", "sources", "data", "`jenkins.branch.BranchSource`", "source, "traits"]

最佳答案

您可以尝试使用先行检查是否存在`

'root.sources.data.`jenkins.branch.BranchSource`.source.traits' splitBy(/[.](?=(?:[^`]*`[^`]*`)*[^`]*$)/)

这将导致
[
  "root" as String {class: "java.lang.String"}, 
  "sources" as String {class: "java.lang.String"}, 
  "data" as String {class: "java.lang.String"}, 
  "`jenkins.branch.BranchSource`" as String {class: "java.lang.String"}, 
  "source" as String {class: "java.lang.String"}, 
  "traits" as String {class: "java.lang.String"}
] as Array {encoding: "UTF-8", mediaType: "*/*", mimeType: "*/*", class: "java.util.ArrayList"}

关于mule-studio - splitBy regex 问题 dataweave 2.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59289281/

相关文章:

java - 在 dataweave 2.0 中添加两个小时和分钟

mule - 从动态 JSON 负载中提取值

java - Mule/Groovy - Canonicals 列表拆分为另外 3 个列表

java - Mulesoft 转换消息转义正斜杠

mule - DataMapper 是否在 Mule Future 企业版中可用?

java - Mule ESB 的 DataMapper 自定义脚本?

mule - 批处理 mule esb 中遇到错误

mule - 如何在 Munit 中附加文件以进行功能测试用例 - Mule ESB

mule-studio - Anypoint Studio 7.1启动错误