【问题标题】:splitBy regex issue dataweave 2.0splitBy 正则表达式问题 dataweave 2.0
【发布时间】:2020-04-04 22:35:41
【问题描述】:

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

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

输出:

["", ".", ".", ".", ".", "." ]

预期:

["root", "sources", "data", "`jenkins.branch.BranchSource`", "source, "traits"]

【问题讨论】:

  • splitBy 需要一个匹配分隔符(分隔部分的子字符串)的正则表达式,但该正则表达式匹配您想要作为输出的部分。

标签: mule-studio dataweave


【解决方案1】:

您可以尝试使用前瞻来检查是否存在`

'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"}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-25
    • 1970-01-01
    相关资源
    最近更新 更多