REGEXP_EXTRACT

李博bluemind發表於2018-11-14

語法


  1. 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
  • 測試案例

  1. SELECT REGEXP_EXTRACT(str1, pattern1, index1) as result
  2. FROM T1
  • 測試結果
result(VARCHAR)
bar
100
null
null
null
null

本文轉自實時計算——REGEXP_EXTRACT