本文为您介绍如何使用实时计算字符串函数REGEXP_EXTRACT。

语法

VARCHAR REGEXP_EXTRACT(VARCHAR str, VARCHAR pattern, INT index)       

入参

参数 数据类型 说明
str VARCHAR 指定的字符串。
pattern VARCHAR 匹配的字符串。
index INT 第几个被匹配的字符串。
注意 正则常量请按照Java代码来写。CodeGen会将SQL常量字符串自动转化为Java代码。如果要描述一个数字\d,需要写成'\d',即和Java中正则相同。

功能描述

使用正则模式Pattern匹配抽取字符串Str中的第Index个子串,Index从1开始,正则匹配提取。当参数为NULL或者正则不合法时,则返回NULL。

示例

  • 测试数据
    str1 (VARCHAR) pattern1(VARCHAR) index1 (INT)
    foothebar foo(.*?)(bar) 2
    100-200 (\\d+)-(\\d+) 1
    null foo(.*?)(bar) 2
    foothebar null 2
    foothebar 2
    foothebar ( 2
  • 测试语句
    SELECT  REGEXP_EXTRACT(str1, pattern1, index1) as result
    FROM T1;    
  • 测试结果
    result(VARCHAR)
    bar
    100
    null
    null
    null
    null