适用于:
Databricks SQL
Databricks Runtime
根据匹配 str 的匹配项拆分 regex,并以最大的长度 limit 返回数组。
语法
split(str, regex [, limit] )
参数
-
str:要拆分的STRING表达式。 -
regexp:一个STRING正则表达式,该表达式是拆分str的正则表达式。 有关支持的语法,请参阅 正则表达式 。 -
limit:可选的INTEGER表达式,其默认值为 0(没有限制)。
返回
ARRAY<STRING>。
如果 limit> 为 0:生成的数组的长度不会超过 limit,并且生成的数组的最后一个条目将包含超出上次匹配 regex的所有输入。
如果 limit< = 0:将尽可能多地应用 regex,并且生成的数组可为任意大小。
示例
拆分一组分隔符字符
字符类[ABC]与任一字符AB或C分隔符匹配。 尾随空元素来自字符串末尾的分隔符。
> SELECT split('oneAtwoBthreeC', '[ABC]');
[one,two,three,]
拆分逗号分隔字符串
> SELECT split('apple,banana,cherry', ',');
[apple,banana,cherry]
拆分一个或多个空格字符
使用 \s+ ,使空格或选项卡的运行充当单个分隔符。
> SELECT split('the quick brown', r'\s+');
[the,quick,brown]
限制元素数
如果 limit 大于 0,则最终元素保留字符串的其余部分。
> SELECT split('oneAtwoBthreeC', '[ABC]', 2);
[one,twoBthreeC]
> SELECT split('oneAtwoBthreeC', '[ABC]', -1);
[one,two,three,]
排序规则会影响匹配
小写模式 [abc] 仅在不区分大小写的排序规则下匹配大写分隔符。
> SELECT split('oneAtwoBthreeC' COLLATE UTF8_BINARY, '[abc]');
[oneAtwoBthreeC]
> SELECT split('oneAtwoBthreeC' COLLATE UTF8_LCASE, '[abc]');
[one,two,three,]