更新时间:2026-07-08 GMT+08:00
分享

regexp_extract

将字符串source按照pattern的分组规则进行字符串匹配,返回第groupid个组匹配到的字符串内容。

命令格式

regexp_extract(string <source>, string <pattern>[, bigint <groupid>]) 

参数说明

参数

是否必选

参数类型

说明

source

STRING

待匹配的字符串。

pattern

STRING

正则表达式。待匹配的模型。

groupid

BIGINT

BIGINT类型常量,必须大于等于0。不指定时默认为1,表示返回第一个组。如果groupid等于0,则返回满足整个pattern的子串。

返回值说明

返回STRING类型的值。

  • 如果pattern为空串或pattern中没有分组,返回报错。
  • groupid非BIGINT类型或小于0时,返回报错。
  • source、pattern或groupid值为NULL时,返回NULL。

示例代码

将basketball按照bas(.*?)(ball)拆分,返回ket。

select regexp_extract('basketball', 'bas(.*?)(ball)'); 

返回basketball。

select regexp_extract('basketball', 'bas(.*?)(ball)', 0); 

返回99。在SQL中需要使用两个"\"作为转义字符。

select regexp_extract('8d99d8', '8d(\\d+)d8');

相关文档