You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure Data Factory数据流中用正则拆分成分字符串?

在Azure Data Factory数据流中拆分成分字符串的正确方法

你遇到的问题根源是用错了函数:regexSplit的作用是将匹配到的正则内容作为分隔符,拆分原字符串,而不是提取符合模式的子串。你的正则[0-9]+%[A-Za-z]*是用来匹配每个成分段的,用它当分隔符自然得不到想要的结果。下面给两种可行的实现方式:

方法一:用regexExtractAll直接提取(推荐)

这个函数会提取所有符合正则模式的子串,返回数组,完全匹配你的需求:

  1. 在数据流中添加派生列转换
  2. 新增列(比如命名为Components),输入以下表达式:
    regexExtractAll(yourSourceColumn, '[0-9]+%[A-Za-z]+')
    
    把yourSourceColumn替换成你存储目标字符串的源字段名。
  3. 执行后会得到数组结果:["57%Acrylic", "27%Polyester", "14%Polyamide", "2%Elastane"]

注:正则里把[A-Za-z]*改为[A-Za-z]+,确保匹配至少一个字母,避免无效的空匹配。

方法二:用regexSplit按分隔位置拆分

如果坚持要用regexSplit,需要匹配成分段之间的衔接空位置作为分隔符,用正则的正向/反向预查实现:
在派生列中使用以下表达式:

regexSplit(yourSourceColumn, '(?<=[A-Za-z])(?=[0-9])')

这个正则匹配的是字母结尾、数字开头之间的空位置,以此拆分原字符串,同样能得到目标数组。

内容的提问来源于stack exchange,提问作者Rakesh Suryawanshi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 01:57:23