更新时间: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'); 父主题: 字符串函数