regexp_extract_all
regexp_extract_all 介绍
regexp_extract_all(str, regexp[, idx]) - 从字符串 str 中提取所有匹配正则表达式 regexp 的字符串,并对应于正则表达式的组索引。
参数:
-
str - 一个字符串表达式。
-
regexp - 表示正则表达式的字符串。正则表达式字符串应该是一个 Java 正则表达式。
从 Spark 2.0 开始,我们的 SQL 解析器不再对字符串文字(包括正则表达式模式)进行转义。例如,要匹配 "\abc",regexp 的正则表达式可以是 "^\abc$"。
有一个 SQL 配置 'spark.sql.parser.escapedStringLiterals',可以用来回退到 Spark 1.6 关于字符串文字解析的行为。例如,如果启用了此配置,可以匹配 "\abc" 的 regexp 是 "^\abc$"。
-
idx - 一个表示组索引的整数表达式。正则表达式可能包含多个组。idx 指示要提取哪个正则表达式组。组索引应该是非负数。idx 的最小值是 0,意味着匹配整个正则表达式。如果未指定 idx,则默认组索引值是 1。idx 参数是 Java 正则表达式 Matcher 组() 方法的索引。
Examples:
> SELECT regexp_extract_all('100-200, 300-400', '(\\d+)-(\\d+)', 1);
["100","300"]
Since: 3.1.0