regexp_extract

regexp_extract

regexp_extract 介绍

regexp_extract(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('100-200', '(\\d+)-(\\d+)', 1);
 100

Since: 1.5.0