ADF - 数据流表达式生成器清理/解析列

问题描述 投票:0回答:1

使用以下代码成功转换 EPOCH 时间戳后:

toTimestamp(toLong(toString(published)),'yyyy-MM-dd')

我很难从这个有 100 行的列中提取正确的信息。

从此:

[["nlp/f/businessEvent/new-deal","新政",[["太空探索公司9月获得NASA巨额合同"],["9月17日,NASA授予Intuitive签订近空网络合同,未来 10 年最大潜在价值为 48.2 亿美元。"]],"关于",{}]]

对此:

新交易 - 这家太空探索公司于 9 月份获得了 NASA 的巨额合同。 9 月 17 日,NASA 授予 Intuitive Machines 一份近太空网络合同,未来 10 年最大潜在价值为 48.2 亿美元。

它应该删除:

[["nlp/f/businessEvent/new-deal","
",[["
"],["
"]],"about",{}]]

另外在:[["nlp/f/businessEvent/new-deal"," businessEventnew-deal 可以包含任何字符串

我在看:

replace(<string> : string, <substring to find> : string, [<substring to replace> : string]) => string

regexReplace(<string> : string, <regex to find> : string, <substring to replace> : string) => string

但我很难找到正确的公式。

regex azure-data-factory google-cloud-dataflow
1个回答
0
投票

期望你的结构永远是这样的:

[["a","b",[["c"],["d"]],"e",{}]]

这个正则表达式可以完成这项工作:

\[\["[^"]+","([^"]+)",\[\["([^"]+)"\],\["([^"]+)"\]\],"[^"]+",\{\}\]\]

它使用像

([^"]+)
这样的捕获组来获取“b”、“c”和“d”的值:

  • b:
    group1
  • c:
    group2
  • d:
    group3

因此连接各组:

group1 group2 group3

会完成这项工作。

备注:此正则表达式不是防弹的,并且在您具有 a、b、c、d 或 e(如

something"with quotes "inside
)值的情况下将不起作用。如果值之间有空格(例如
[ ["a", "b",[ ["c"],["d"]],"e",{ } ]]
),则不起作用。

© www.soinside.com 2019 - 2024. All rights reserved.